源码

首页 » 归档 » 源码 » c – CMAKE中添加-fPIC编译器选项的惯用方法…

c – CMAKE中添加-fPIC编译器选项的惯用方法…


我至少有三种方法可以做到这一点,我想知道哪种方式是惯用的.这几乎普遍适用于任何静态库.我很惊讶CMake中的Makefile生成器不会自动将其添加到静态库中. (除非我错过了什么?)

target_compile_options(myLib PRIVATE -fPIC)

add_compile_options(-fPIC)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic")

我相信可能还有其他变化. (如果你找到一个,请编辑我的问题)

如果您碰巧知道这个问题的答案,您是否也知道是否有办法使用此标志编译第三方CMake项目而不修改其CMakeLists.txt文件?我遇到了缺少该标志的静态库.将静态库编译为动态库时会导致问题.

你得到:

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/c-cmakezhongtianjia-fpicbianyiqixuanxiangdeguanyongfangfa.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 25, 2019 at 11:20 下午

热评文章