CMake add_library( 对象 ) 是否有环境变量<lib><src>?
Are there environment variables for CMake add_library(<lib> OBJECT <src>)?
CMake is 2.8.8在编译时引入了OBJECT库类型:add_library(OBJECT)。这是一个有用的构造,可以将所有类编译到.o文件,但不要将它们添加到库中。
但是,我不确定它最终会附加到生成的make文件中的命令上的标志是什么。基本上,在执行add_library(SHARED)命令时,它会添加由CMAKE_SHARED_library_CXX_flags指定的任何标志。我希望能够为JUST OBJECT库指定构建标志,而不必求助于更全局的标志,如CMAKE_CXX_flags_DEBUG和CMAKE_CXX _flags_LEASE。有人知道这样的旗帜是否存在或计划中吗?
综述:
# has CMAKE_SHARED_LIBRARY_CXX_FLAGS to set SHARED library build flags
add_library(<lib> SHARED <srcs>)
# Is any environment variable available to set OBJECT library build flags?
add_library(<lib> OBJECT <srcs>)
我希望有一个类似CMAKE_OBJECT_LIBRARY_CX_FLAGS的环境变量来设置OBJECT构建标志。通过查看源代码(Modules/SystemInformation.in和Modules/CMakeCXXInformation.cmake),我没有发现任何特定于OBJECT库的内容。
编辑:具体来说,我想将-fPIC添加到OBJECT库中,但不添加到可执行文件中,这就是为什么我不想在CMAKE_CXX_FLAGS_*中指定标志
使用CMake 2.8.9或更高版本时,使用属性POSITION_INDEPENDENT_CODE以独立于编译器的方式启用位置独立代码:
add_library(<lib> OBJECT <srcs>)
set_target_properties(<lib> PROPERTIES POSITION_INDEPENDENT_CODE ON)
对于较旧版本的CMake,可以设置OBJECT_LIBRARY
目标的COMPILE_FLAGS属性:
add_library(<lib> OBJECT <srcs>)
set_property(TARGET <lib> PROPERTY COMPILE_FLAGS "-fPIC")
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- EASTL矢量<向量<int>>连续的
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 什么是模板&lt;&gt;inline bla bla
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是std :: set&lt; std :: future&gt;不可能存在
- 是numeric_limits&lt; int&gt; :: is_modulo从逻辑上矛盾
- opencv 2.4.7在iOS错误背景_segm.hpp #include&lt; list&gt;未找到
- 在修改列表后,std :: list&lt; t&gt; :: end()的值是否会更改
- ///<评论></评论>在Visual Studio中