问题描述
工程文件依赖yaml-cpp,在编译工程文件时显示如下问题
/usr/bin/ld: /usr/local/lib/libyaml-cpp.a(memory.cpp.o): relocation R_X86_64_PC32 against symbol `_ZTVSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: bad value
collect2: error: ld returned 1 exit status
解决办法
删除yaml-cpp文件夹原来的build文件夹
打开cmakelist
project(YAML_CPP VERSION 0.7.0 LANGUAGES CXX)
add_compile_options(-fPIC)#添加这句编译选项
然后
mkdir build
cd build
cmake ..
make
sudo make install
OK!