CMake:拥有不同链接标志的正确方式
CMake: correct way to have differing link flags?
我的项目中同时有C++和C文件。我使用CMAKE_CXX_FLAGS
和CMAKE_C_FLAGS
为每种编译标志分别设置了不同的编译标志。如何为每个链接器创建不同的链接器标志?
如果像CMAKE_CXX_EXE_LINKER_FLAGS
和CMAKE_C_EXE_LINKER_FLAGS
这样的东西存在,但只有CMAKE_EXE_LINKER_FLAGS
,那就太好了。
有
CMAKE_CXX_LINK_EXECUTABLE
CMAKE_C_LINK_EXECUTABLE
看起来他们可以解决你的问题。
请记住,您正在学习编译器和特定于平台的东西,如果您需要一个多平台、多编译器的项目,您可以选择合适的条件组合来选择合适的宏集。
- 生成规则
事实证明,至少在CMake 3.0.2版本中,./share/cmake-3.0/Modules/CMakeCXXInformation.cmake
中使用了以下变量CMAKE_C_LINK_FLAGS
和CMAKE_CXX_LINK_FLAGS
。
它们没有记录在我查看过的任何地方,也没有出现在生成的文件或缓存中,因此我没有找到它们。但他们似乎在做我需要的事。
希望CMake将继续支持它们,而不是像有时未记录的功能那样,在没有警告的情况下突然删除它们。
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 在c代码之间共享数据的最佳方式
- 在C++中将函数压缩为两种方式
- 以螺旋方式打印矩阵的程序.(工作不好)
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 创建引用向量的优雅方式
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 不同/较旧的处理器运行c++代码的方式是否不同
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 重载方法的方式会在使用临时调用时生成编译器错误
- 在reactor中存储eventHandlers的最佳方式是什么
- 如何以优化的方式同时迭代两个间距不相等的数组
- 即使使用调试编译标志,表达式也是"optimized out"
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 是否有一种直观的方式检查标志和状态
- CMake:拥有不同链接标志的正确方式
- 如何以编程方式使用ffmpeg快速启动标志
- 枚举是实现位标志的规范方式吗?