<header>
をfiles.ui
で作成すると、カスタムウィジェットでcmakeが動作します。QT:.uiファイル内のヘッダー
私はこのようなCMakeListsをしました:私は私のconversionform.uiに見れば、私のようなものをした
[ 65%] Building CXX object CMakeFiles/qtelec.dir/home/mea/workspace/repos/qtelec/qtelec/src/forms/conversionform.cpp.o
In file included from /home/mea/workspace/repos/qtelec/qtelec/src/forms/conversionform.cpp:2:0:
/home/mea/workspace/repos/qtelec/build/ui_conversionform.h:18:40: fatal error: ../widgets/canecoboxwidget.h: Aucun fichier ou dossier de ce type
compilation terminated.
:
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project(qtelec C CXX)
set(CMAKE_PREFIX_PATH $ENV{HOME}/Qt5.6.0/5.6/gcc_64)
set(SRC_BASE_DIR "../../../qtelec")
set(COREALPI_BUILD_DIR "../../../../corealpi/build")
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5Widgets REQUIRED)
file(GLOB_RECURSE SRC_FILES
${SRC_BASE_DIR}/src/*.h
${SRC_BASE_DIR}/src/*.cpp
)
link_directories(${COREALPI_BUILD_DIR}/elec)
link_directories(${COREALPI_BUILD_DIR}/elec/core)
add_library(qtelec SHARED
${SRC_FILES}
)
add_subdirectory(${SRC_BASE_DIR}/../platform/cmake/qtutils ${CMAKE_BINARY_DIR}/qtutils)
include_directories(${SRC_BASE_DIR}/../external/qtpropertybrowser/latest/src)
include_directories(${SRC_BASE_DIR}/../qtutils/src)
#include_directories(${SRC_BASE_DIR}/src/widgets)
include_directories(${COREALPI_BUILD_DIR}/../include/ca)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
target_link_libraries(qtelec qtpropertybrowser elec core qtutils Qt5::Widgets)
cmake ..
作品が、cmake --build .
は私に次のエラーを与えますその(と他のfiles.uiも):
<customwidgets>
<customwidget>
<class>CanecoBoxWidget</class>
<extends>QWidget</extends>
<header>../widgets/canecoboxwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
ui_generatedファイルは私のビルドフォルダにあるので、cmakeがパス../widgets/
を見つけようとすると、彼は存在しません。ここに私のフォルダ構造は次のとおりです。私が見つけ
├── build
├── qtelec
│ ├── src
│ └── *.h
│ └── *.cpp
│ └── editors
│ └── *.h
│ └── *.cpp
│ └── *.ui
│ └── forms
│ └── *.h
│ └── *.cpp
│ └── *.ui
│ └── widgets
│ └── *.h
│ └── *.cpp
│ └── *.ui
├── cmake/CMakelists.txt
唯一の解決策は、include_directories(${SRC_BASE_DIR}/src/widgets)
とディレクトリを含めることです。
しかし私は、CMakeやQTに追加のインクルードなしで動作させる方法があると思いますか?
.proファイルでは、このフォルダを含める必要はありません。
解決策を見つけてもらえますか?
さらに詳しい情報が必要な場合は、私はそれを与えることができます。
ありがとうございました。