对YAML :: LoadFile的未定义引用

edA*_*a-y 4 gcc yaml-cpp

我正在尝试使用新版本的libyaml-cpp并遇到链接器问题(undefined reference to 'YAML::LoadFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)').

我按如下方式构建库:

cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

然后我包括yaml-cpp/yaml.h并打电话YAML::LoadFile( some_string );.我的编译行是:

g++ -L/usr/local/lib -I/usr/local/include -lyaml-cpp -std=c++0x -o $@  $^
Run Code Online (Sandbox Code Playgroud)

我已经尝试将确切的.so文件放在那里,但没有运气.使用nm我可以LoadFile在共享库中看到一个函数.如果我以某种方式使用错误的构建行或者库存在问题,我现在无法弄清楚.

edA*_*a-y 7

这是命令行上的排序问题.我想我永远不会理解GCC命令行逻辑.简单地将库放在最后似乎有效:

g++ -L/usr/local/lib -I/usr/local/include -std=c++0x -o $@  $^ -lyaml-cpp
Run Code Online (Sandbox Code Playgroud)