我正在尝试使用新版本的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在共享库中看到一个函数.如果我以某种方式使用错误的构建行或者库存在问题,我现在无法弄清楚.
这是命令行上的排序问题.我想我永远不会理解GCC命令行逻辑.简单地将库放在最后似乎有效:
g++ -L/usr/local/lib -I/usr/local/include -std=c++0x -o $@ $^ -lyaml-cpp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4004 次 |
| 最近记录: |