我在使用ninja-build在GNU / Linux Ubuntu 16.04下构建项目时遇到了问题。 当与OpenDDS 3.9链接时,更准确地说与libACE.a链接时,我收到了这个错误:
/usr/bin/ld: ../../thirdparty/OpenDDS/ACE_wrappers/lib/libACE.a(Base_Thread_Adapter.o): relocation R_X86_64_32 against `_ZTV23ACE_Base_Thread_Adapter' can not be used when making a shared object; recompile with -fPIC
../../thirdparty/OpenDDS/ACE_wrappers/lib/libACE.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
我已将OpenDDS(和ACE)构建为静态库。 我使用以下命令行来配置和构建OpenDDS:
./configure --no-debug --static --verbose
sudo bash ./setenv.sh
make
它告诉用-fPIC参数重新编译,我没有成功找到一种方法来重新构建OpenDDS和ACE使用这个选项,我怎么能这样做?
谢谢!