选择在CMAKE中构建库或可执行文件
choose to build library or executable in cmake
我正在用C 构建一个库,我用CMAKE生成项目。但是,我不知道如何在图书馆的顶部目录中写一个好的cmakelists.txt。
实际上,如果我想简单地将库在另一个项目(添加库,链接源等...(中实际上有效,但是我希望如果我在没有其他项目的情况下生成库图书馆提供的演示项目。所以我想要一个
的cmakelists- 将图书馆包含在项目中的情况下
- 在Cmakelists的情况下构建演示是最高的Cmakelists。
我的第一个想法是搜索是否已经调用" Project(XXX(",但我不知道这是否是个好主意。由于我真的不知道这是什么好习惯,我确实很难在文档中找到信息。
检测您当前项目是否也是顶级项目的快速方法是检查PROJECT_SOURCE_DIR
和CMAKE_SOURCE_DIR
:
if(PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
message("You are building stand-alone!")
endif()
,请注意,这可能不是解决问题的最佳解决方案。允许将图书馆拉入这样的第三方构建中,需要您的库和封闭构建的明确支持。
另外,您可以单独构建两个项目,但为您的库提供了适当的包装以使其易于集成。这种方法通常更灵活,因为它使您的客户可以自由选择何时以及如何在将图书馆置于其构建之前。
相关文章:
- 使用 Premake5 构建项目不会生成可执行文件或中间体
- 在Visual Studio 2017中构建Qt可执行文件
- 在 eclipse 中以发布模式构建后没有可执行文件
- 为多个测试文件构建可执行文件
- 构建MacOS可执行文件,以便使用cmake(包括OpenCV)进行分发
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- 在QMAKE中编译之前,如何使用可执行文件构建多个标头文件
- cmake:构建可执行文件并库并链接它们
- CMake 构建静态可执行文件
- CMake 不会使用 add_executable 构建可执行文件
- 选择在CMAKE中构建库或可执行文件
- 使用LTO静态链接的可执行文件(链接时间优化):如何使用以前构建的库进行制作
- 如何在 VSCODE 中构建、运行和删除可执行文件和虚拟文件
- 构建一个可执行文件,如果是单个 cpp 文件
- 将 CLANG 构建的可执行文件与 G++-v6 构建的 Boost 库链接时出错
- cmake:如何迭代目录中的所有源文件并将每个文件构建到可执行文件中
- 如何使用SCONS构建CPP文件:每个文件都具有可执行文件
- 可视化 将 c++ 可执行文件图标添加到预制件 5 构建脚本
- 为什么?在改变构建结构后,可执行文件的大小显著减少
- Android OS框架-将单个可执行文件构建为共享对象