我試圖使用新版本的libyaml-cpp並有鏈接器問題(undefined reference to 'YAML::LoadFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
)。未定義的引用YAML :: LoadFile
我建庫如下:
cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
然後我包括yaml-cpp/yaml.h
和呼叫YAML::LoadFile(some_string);
。我的編譯行是:
g++ -L/usr/local/lib -I/usr/local/include -lyaml-cpp -std=c++0x -o [email protected] $^
我試圖把確切的.so
文件在那裏也沒有運氣。使用nm
我可以在共享庫中看到一個LoadFile
函數。我現在無法弄清楚,如果我以某種方式使用錯誤的構建線或圖書館有問題。
是的,我也有舊的,但不能刪除它(其他的東西都需要它)。這就是爲什麼我通過顯式路徑和/或庫名稱首先加載新路徑。 –
它確實找到它。如果我把'-l:libyaml-cpp.so.0.5'放在一個不存在缺少文件的位置,但是仍然沒有找到引用。 –