CMake包含和源路径-基本设置
CMake with include and source paths - basic setup
我正在尝试建立一个测试项目,看起来像我自己的项目,只是为了让事情首先工作,它看起来像这样:
/MainProject/inc/main.h
/MainProject/src/main.cpp
/LibProject/inc/test.h
/LibProject/src/test.cpp
我找到了一些教程,但我不知道如何设置这当我有inc和src文件夹?CMakeLists.txt文件看起来如何?我要在每个项目文件夹里放一个吗?似乎我不需要有一个在inc和src文件夹?
每个源子目录都需要一个CMakeLists.txt
。你的结构应该像这样:
root
|-MainProject
| |-inc
| | '-main.h
| |-src
| | |-main.cpp
| | '-CMakeLists.txt
| '-CMakeLists.txt
|-LibProject
| |-inc
| | '-test.h
| |-src
| | |-test.cpp
| | '-CMakeLists.txt
| '-CMakeLists.txt
'-CMakeLists.txt
root/CMakeLists.txt
含量:
project(MyProject)
add_subdirectory(MainProject)
add_subdirectory(LibProject)
LibProject/CMakeLists.txt
和MainProject/CMakeLists.txt
含量:
add_subdirectory(src)
LibProject/src/CMakeLists.txt
内容:
# Notice name prefix of this variable, set by CMake according
# to value given with "project()" in the root CMakeLists.txt.
include_directories(${MyProject_SOURCE_DIR}/LibProject/inc)
add_library(LibProject test.cpp)
MainProject/src/CMakeLists.txt
内容:
include_directories(${MyProject_SOURCE_DIR}/MainProject/inc)
# I assume you want to use LibProject as a library in MainProject.
include_directories(${MyProject_SOURCE_DIR}/LibProject/inc)
link_directories(${MyProject_SOURCE_DIR}/LibProject/src)
add_executable(MainProject main.cpp)
target_link_libraries(MainProject LibProject)
然后配置和构建:
$ cd root
$ mkdir build
$ cd build
$ cmake ..
$ make
你可以这样做:
-
CMakeLists.txt在你的MainProject目录:
project(MainProject) add_subdirectory(LibProject/src) add_subdirectory(MainProject/src)
-
CMakeLists.txt在LibProject/src目录下:
include_directories(${PROJECT_SOURCE_DIR}/LibProject/inc/) add_library(LibProject test.cpp)
-
CMakeLists.txt在你的MainProject/src目录下:
include_directories(${PROJECT_SOURCE_DIR}/MainProject/inc/) add_executable(MainProject main.cpp) target_link_libraries(MainProject LibProject)
在我的情况下,我想用单个CMakeList来做。这对我很有效。我把我的解决方案加进去,以防有人用。
我是这样做的:
My structure:
Project
|CMakeLists.txt
|-src
| |*.cpp
| |*.c
|-include
| |*.hpp
| |*.h
我的CMakeLists.txt必须主要部分:
include_directories(
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
)
^允许。cpp文件在include文件夹中添加头文件。
file(GLOB all_SRCS
"${PROJECT_SOURCE_DIR}/include/*.h"
"${PROJECT_SOURCE_DIR}/include/*.hpp"
"${PROJECT_SOURCE_DIR}/src/*.cpp"
"${PROJECT_SOURCE_DIR}/src/*.c"
)
^把文件夹里的东西都加进去。
add_executable(MyTarget ${all_SRCS})
^从所有源列表中构建目标
PS:如果你想看完整的CMakeLists.txt到项目链接NEGU93/ForbiddenDesert.
相关文章:
- 在C++中设置基于操作系统的文件路径
- 为 QFileDialog 设置默认的 UNC 路径
- 将Visual Studio Code路径设置为.clang_format文件
- 如何设置 CMake 来构建包含路径包含的代码,如 #include < libdir/lib>?
- 在Visual Studio Code(.json配置)中设置相对于工作区路径的c / c ++项目的包含路径
- 如何从客户端为COM服务器设置dll搜索路径?
- 为自定义路径类型设置提升property_tree
- 如何在C++(JNI)中设置正在运行的JVM的类路径
- 如何在 pybind11 项目中设置包含路径
- 如何在不设置完整路径的情况下访问 c++ 中的资源
- 在makefile中设置GCC路径
- CMAKE3:将通往MPI标头的路径设置
- 在Windows上设置编译器路径
- 设置所需DLL文件的自定义路径:电子应用
- 通过程序代码行设置C++包含路径
- 如何正确设置Windows路径以通过CMAKE轻松识别
- WT:未设置文档根或设置为空路径
- 我正在尝试在Eclipse中构建一个C 项目,但是即使在使用MINGW路径设置路径变量之后,也会获得构建错误
- 如何使用Qt Windows中的设置路径属性从命令行运行应用程序(.exe)时在命令行上打印日志
- 在CMake (c++, ImageMagick)中设置路径