我用 C++ 创建了一个简单的库项目,并添加了 CMake 文件以自动生成 Visual Studio 项目。我的小项目只包含 2 个文件:
include/
testproject/
testproject.h
src/
testproject.cpp
CMakeLists.txt
头文件现在位于外部依赖项中(截屏 https://i.stack.imgur.com/xbQ2x.png)。如何在“标题”部分显示它? (或任何其他。只是不是“外部依赖项”)
CMakeLists.txt:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(PROJECTNAME testproject)
PROJECT(${PROJECTNAME})
FILE(GLOB MY_HEADERS "include/*.h")
FILE(GLOB MY_SOURCES "src/*.cpp")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
ADD_LIBRARY(
${PROJECTNAME} STATIC
${MY_HEADERS} ${MY_SOURCES}
)
注意:如果将 dirs 结构更改为
include/
testproject.h
src/
testproject.cpp
CMakeLists.txt
结果就像截屏 https://i.stack.imgur.com/ujxCq.png。头文件在“头文件”中。但我需要在以前的项目结构中
Use 全局递归 https://cmake.org/cmake/help/v3.0/command/file.html:
GLOB_RECURSE 会生成一个类似于常规 GLOB 的列表,只不过它会遍历匹配目录的所有子目录并匹配文件。仅当给出 FOLLOW_SYMLINKS 或 cmake 策略 CMP0009 未设置为 NEW 时,才会遍历符号链接的子目录。有关详细信息,请参阅 cmake –help-policy CMP0009。
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(PROJECTNAME testproject)
PROJECT(${PROJECTNAME})
FILE(GLOB_RECURSE MY_HEADERS "include/*.h")
FILE(GLOB MY_SOURCES "src/*.cpp")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
ADD_LIBRARY(
${PROJECTNAME} STATIC
${MY_HEADERS} ${MY_SOURCES}
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)