如何使用CMake从MySQL添加新的源文件

643ylb08  于 4个月前  发布在  Mysql
关注(0)|答案(1)|浏览(57)

我使用Qt的方式是,与Qt相关的文件在一个名为“GUI"的单独文件夹中,我使用的是CMake,它的相关部分如下所示:

include_directories(${Qt5Widgets_INCLUDES} GUI/include main/include)

add_definitions(${Qt5Widgets_DEFINITIONS})

file(GLOB_RECURSE QOBJECT_HEADERS
    "GUI/include/*.h"
)
file(GLOB_RECURSE QOBJECT_SOURCES
    "GUI/*.cpp"
)

QT5_WRAP_CPP(hdr_moc ${QOBJECT_HEADERS})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}  -std=c++11 -Wall")

add_executable(simGUI main/sim_GUI.cpp ${QOBJECT_SOURCES}
    ${hdr_moc})
# Use the Widgets module from Qt 5.
target_link_libraries(simGUI Qt5::Widgets)

字符串
基本上,这个设置可以工作,但是当我添加一个新文件(类似于自定义小部件)时,新文件编译正常,但是在链接阶段找不到新对象。
我过去常常删除构建文件,之后一切都很好。
我是不是CMake出了什么问题?我猜这些症状是由缓存问题引起的。

syqv5f0l

syqv5f0l1#

CMake的文档:
我们不建议使用GLOB从源代码树中收集源代码文件列表。如果在添加或删除源代码时没有CMakeLists.txt文件更改,则生成的构建系统无法知道何时要求CMake重新生成。
典型的方法是手动列出所有文件。

相关问题