The*_*ist 2 c++ cmake include qt-creator project-files
如果我在目录中有.h
和.cpp
文件src
,其中.cpp
文件包含.h
文件,请在 CMake 中使用这些命令:
aux_source_directory(src SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
Run Code Online (Sandbox Code Playgroud)
并在 Qt Creator 中打开该 CMake 文件,获取项目文件列表(默认情况下左侧的文件树)中的所有文件(源文件 + 标题)。
现在,另一方面,如果我将所有.h
文件放在一个目录中include
,并使用这个:
include_directories(include)
aux_source_directory(src SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
Run Code Online (Sandbox Code Playgroud)
头文件从项目文件中消失了!
如何将头文件保留在该目录中,并且仍将它们列在 Qt Creator 的项目文件中?
你不应该aux_source_directory()
用于你的任务。该命令用于不同的东西。只需列出源文件(或将它们放在变量中)。
您不应再include_directory()
用于定义包含目录。这个命令只会填充-I
编译器的标志。使用头文件定义一个变量并将其添加到可执行文件中。
如果您不想手动列出每个文件,请使用file(GLOB ...)
. 但是请注意使用该命令在网络上经常提到的警告。
之后,告诉 CMake-I
仅为该可执行文件填充该include
目录的标志。这样,其他目标就不会被包含污染,他们不应该使用。
set(SOURCES
src/main.cpp
src/whatever.cpp)
set(HEADERS
include/whatever.h)
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC include)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9683 次 |
最近记录: |