具有多个目录和多个 CMakeList 的 Cmake 项目
Cmake project with multiple directories and multiple CMakeLists
我得到了一些C++源文件,以及一个CMakeLists.txt文件,该文件编译以创建可执行文件。我现在想将自己的源文件添加到此项目中。但是,我想将原始源文件和原始 CMakeLists 文件与新文件分开。
所以,我希望我的解决方案看起来像这样:
/Project
/Project/src
/Project/src/CMakeLists.txt
/Project/src/OriginalSource
/Project/src/OriginalSource/CMakeLists.txt
/Project/src/OriginalSource/Original.cpp
/Project/src/NewSource
/Project/src/NewSource/CMakeLists.txt
/Project/src/NewSource/New.cpp
/Project/build
我希望所有源文件都编译成可执行文件,放在构建目录中。所以我的问题是,我在三个 CMakeLists 文件中放了什么,以便src/OriginalSource/CMakeLists.txt
只编译原始源代码,src/NewSource/CMakeLists.txt
只是编译新源代码,src/CMakeLists.txt
所有这些构建的源代码链接在一起,并创建一个可执行文件?
你可以用你的代码创建一个方便的库,然后将其链接到你已经得到的代码。这里解释了这个想法。
有关更多详细信息,请参阅此链接:http://www.cmake.org/Wiki/CMake/Tutorials/Object_Library
我希望它有所帮助。
如果不修改OriginSource
中的CMakeLists.txt
,就无法更改可执行项目。如果你真的不想修改原始项目,你可以写一个新的CMakeLists.txt
包括旧的和新的源。
一个技巧是在/Project/src/CMakeLists.txt
中定义新的源,然后将它们包含在/Project/src/OriginalSource/CMakeLists.txt
中:
set(NEW_INCS ${CMAKE_SOURCE_DIR)/NewSource)
file(GLOB NEW_SRCS ${CMAKE_SOURCE_DIR)/NewSource/*.cpp)
相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Visual Studio 中的 CMake 项目:如何添加其他包含和库目录?
- 尝试将 boost::stacktrace 添加到 CMake 项目时出现构建错误
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 智能感知不适用于Visual Studio 2017中的cmake项目
- 如何在同一个 CMAKE 项目中强制链接到共享库?
- 如何将外部依赖引入跨平台CMake项目?
- 如何将 OpenMP 和 MPI 导入到大型 CLion CMake 项目中?
- 将目录添加到没有 CMakeLists.txt 的 CMake 项目
- 在现代 CMake 项目中存档静态依赖项
- 将 curlpp 添加到 cmake 项目
- 如何使我的 cmake 项目所需的某些 c++ 功能
- 如何将C++17 stdc++fs库链接到混合语言(C++和Fortran)CMake项目
- 简单的cmake项目,在Windows上使用nmake构建没有调试符号
- 如何将opencv_contrib添加到 CMake 项目?
- CMake 项目链接静态库
- 如何将图像文件夹添加到CMake项目以便在c ++可执行文件中使用这些图像?
- Catch2 单元测试未与 CMake 项目一起运行
- 如何将任何DLL链接到Cmake项目
- CLion 导入具有依赖项的现有 cmake 项目