DSO是Dynamic Shared Object的简称,其实就是动态链接库,解决办法很简答,检查库是否存在,如果不存在,就编译一套,多数情况下是库的版本导致的,这时需要在编译参数内通过-L强制指定所需库的位置。嗯,就这么简单
附上一个本人遇到的类似问题和解决过程
haojing@VM-0-2-debian:~/myapp/myapp$ g++ myio.cpp main.cpp -o ./myapp -lboost_system -lboost_thread
/usr/bin/ld: /tmp/ccOKgm3i.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
haojing@VM-0-2-debian:~/myapp/myapp$ sudo find / -name "libpthread*"
/usr/lib/x86_64-linux-gnu/libpthread.so
/usr/lib/x86_64-linux-gnu/libpthread_nonshared.a
/usr/lib/x86_64-linux-gnu/libpthread.a
/lib/x86_64-linux-gnu/libpthread-2.24.so
/lib/x86_64-linux-gnu/libpthread.so.0
/lib/i386-linux-gnu/libpthread-2.24.so
/lib/i386-linux-gnu/libpthread.so.0
haojing@VM-0-2-debian:~/myapp/myapp$ g++ test.cpp myio.cpp main.cpp -o ./myapp -lboost_system -lboost_thread -lpthread -L/usr/lib/x86_64-linux-gnu