CMake Automoc Ошибка 1 - Не удается скомпилировать проект - PullRequest
0 голосов
/ 06 июня 2018

Я только что переместил проект, который я построил в Qt5, в мое дерево проектов CMake.Я экспортировал проект в каталог CMake.Однако, когда я пытаюсь построить проект, компилятор выдает мне следующую ошибку: [src / GUIconceptStudy / CMakeFiles / GUIconceptStudy_automoc] Ошибка 1

См. Также следующий прикрепленный экран печати: Automoc Error 1

Также ниже приведены файлы CMakeLists.txt:

cmake_minimum_required (VERSION 3.1)
project(GUIconceptStudy)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

find_package( OpenCV REQUIRED )
find_package( Boost COMPONENTS system thread filesystem REQUIRED)

#find_package (sqlite3)
find_package(Qt5 REQUIRED COMPONENTS Core Quick)

###
### make sure we use c++11
###
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

###
###boost include stuff (required for all libcam)
###
INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )

find_package(Qt5Widgets)
find_package(Qt5PrintSupport)
#find all the qt UI stuff
file(GLOB UI
    "ui/*.ui"
)

#make them into headers
qt5_wrap_ui (UI_HDRS  ${UI})

###
### add all your non QT sources
###

# find all non ui sources
file(GLOB SRCS
    "src/*.h"
    "src/*.cpp"
    "src/*.hpp"
)

# find all ui related sources
file(GLOB UI_SRCS
    "ui/*.h"
    "ui/*.cpp"
    "ui/*.hpp"
)

###
### Add executables
###
add_executable(GUIconceptStudy main/main.cpp ui/qrc/res.qrc ${SRCS} ${UI_HDRS} ${UI_SRCS})
target_link_libraries (GUIconceptStudy  Qt5::Widgets  ${Boost_LIBRARIES} ${OpenCV_LIBS} Qt5::PrintSupport Qt5::Core Qt5::Quick)

###
### Add Library
###
add_library(GUIconceptStudy_lib SHARED ui/qrc/res.qrc ${SRCS} ${UI_HDRS} ${UI_SRCS})
target_link_libraries (GUIconceptStudy_lib Qt5::Widgets  ${Boost_LIBRARIES} ${OpenCV_LIBS} Qt5::PrintSupport Qt5::Core Qt5::Quick)

После просмотра различных источников в Интернете я не смог найти ничего особенно полезного.Кто-нибудь, кто может пролить немного света на то, в чем может быть проблема?

1 Ответ

0 голосов
/ 12 июня 2018

Это выстрел в темноте, но это, скорее всего, вызвано отсутствием set(CMAKE_INCLUDE_CURRENT_DIR ON).Как сказано в документации , он должен быть установлен, потому что сгенерированные файлы не находятся в вашем исходном каталоге:

Сгенерированные файлы moc _ *. Cpp и * .moc помещаются в каталог сборки так,удобно установить переменную CMAKE_INCLUDE_CURRENT_DIR.

Еще одна ошибка, которую я вижу, это смешение конвейеров обработки Qt.Я уже упоминал об этом в моих других ответах .Как сказано в документации по AUTOUIC свойству , не следует использовать функцию qt5_wrap_ui, когда это свойство включено.

...