9

我是 c++ rest sdk的新手,并在Codelite ideCasablanca中使用它。: Arch Linux : 6.1.1 在构建代码时,我在调试模式下收到以下错误:
Operating System
gcc version

/bin/sh -c '/usr/bin/make -j4 -e -f  Makefile'
----------Building project:[ Casa - Debug ]----------
make[1]: Entering directory '/home/vinci/Documents/CPP_Projects_Programs/Casa'
/usr/bin/g++  -c  "/home/vinci/Documents/CPP_Projects_Programs/Casa/main.cpp" -g -O0 -fopenmp -std=c++14 -std=c++11 -Wall  -o ./Debug/main.cpp.o -I. -I/usr/local/include/cpprest -I/usr/local/include/pplx -I/home/vinci/casablanca/Release/src -I. -I/usr/local/include/cpprest -I/usr/local/include/pplx
/usr/bin/g++ -o ./Debug/Casa @"Casa.txt" -L. -L/usr/local/lib -L/usr/lib64 -L/usr/lib  -lcpprest
/usr/bin/ld: ./Debug/main.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib/libboost_system.so.1.60.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Casa.mk:79: Debug/Casa] Error 1
make[1]: Leaving directory '/home/vinci/Documents/CPP_Projects_Programs/Casa'
make: *** [Makefile:5: All] Error 2
====1 errors, 0 warnings, total time: 00:00:14 seconds====

Stackoverflow在询问之前对此进行了搜索,大多数答案只是指出在项目设置中正确链接库,我已经这样做了,正如在上面的代码中看到的那样,但仍然不断给出错误,我不知道我错过了什么??

一点帮助将不胜感激...谢谢

4

2 回答 2

16
/usr/lib/libboost_system.so.1.60.0: error adding symbols: DSO missing from command line

此 DSO 错误意味着命令行中缺少 libboost_system。您还应该添加:

-lboost_system

到你的命令行就像 -lcpprest

于 2016-07-29T05:22:44.850 回答
0

如果您以错误的顺序引用库,就会发生这种情况。我有一个依赖于 -lboost_system 的个人库,但是我在 boost 库之后列出了我自己的库并且收到了这个错误。我将我的个人库移到列表的前面,错误消失了。

于 2021-02-08T18:53:45.173 回答