鍍金池/ 問答/Java  C  Linux  網(wǎng)絡(luò)安全/ cmake編譯錯(cuò)誤"recompile with -fPIC&quot

cmake編譯錯(cuò)誤"recompile with -fPIC"

使用cmake首先編譯了一個(gè)靜態(tài)庫,這個(gè)靜態(tài)庫鏈接其他的動(dòng)態(tài)庫(log4cpuls.so)。
然后在編譯另外一個(gè)動(dòng)態(tài)庫的時(shí)候遇到如下鏈接錯(cuò)誤:

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

貌似是要我加上-fPIC,但是不清楚在cmakelists.txt里如何加,另外-ldl這樣的鏈接選項(xiàng)在哪里加?
初學(xué)cmake,請(qǐng)指教。

回答
編輯回答
懶洋洋

如果是加-fPIC選項(xiàng)的話:

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

如果是添加鏈接選項(xiàng)的話:

target_link_libraries(a.out pthread)  // 類似 gcc -lpthread 
2017年12月10日 19:34