我尝试安装一个库,但在运行make后出现了以下错误。如何重新编译并加上标志?
$ make
Scanning dependencies of target pwrutils
Linking CXX shared library libpwrutils.so /usr/bin/ld:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_system.a(error_code.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
,/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_system.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [libpwrutils/libpwrutils.so.1.0] Error 1
make[1]: *** [libpwrutils/CMakeFiles/pwrutils.dir/all] Error 2
make: *** [all] Error 2
cmake .
这样的方式然后再用make
,还是你有一个Makefile并调用make
呢? - fedepadlibpwrutils.so
链接到 静态 库libboost_system.a
,但这不起作用。您应该安装共享的 Boost 库,或者将您的库(libpwrutils.so
)构建为静态库。顺便说一下,相关问题描述了相似的问题。 - Tsyvarev