cmake编译错误"recompile with -fPIC"

使用cmake首先编译了一个静态库,这个静态库链接其他的动态库(log4cpuls.so)。
然后在编译另外一个动态库的时候遇到如下链接错误:

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

貌似是要我加上-fPIC,但是不清楚在cmakelists.txt里如何加,另外-ldl这样的链接选项在哪里加?
初学cmake,请指教。

阅读 13.2k
1 个回答

如果是加-fPIC选项的话:

set(CMAKE_CXX_FLAGS "-fPIC")   //c++
set(CMAKE_C_FLAGS "-fPIC")   //c

如果是添加链接选项的话:

target_link_libraries(a.out pthread)  // 类似 gcc -lpthread 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题