我正在try 编译这样的C++程序:

$ g++ -o Sniffer_Train main.cpp Sniffer_train.cpp Sniffer_train.h -lmysqlclient -lpcap

然而,我得到了以下错误:

/usr/bin/ld: /tmp/cct6xeXD.o: undefined reference to symbol
'pthread_join@@GLIBC_2.4' //lib/arm-linux-gnueabihf/libpthread.so.0:
error adding symbols: DSO missing from command line

collect2: error: ld returned 1 exit status

我不知道这个错误是什么意思.任何帮助都将不胜感激.

推荐答案

DSO在这里的意思是Dynamic Shared Object;由于错误消息显示命令行中缺少它,我想您必须将其添加到命令行中.

也就是说,try 向命令行添加-lpthread.

Linux相关问答推荐

在同一目录中未检测到G++预编译头

无法下载Centos 7上的存储库的元数据

Postfix 连接到 domain.com[74.208.61.85]:587: 连接被 dovecot、opendkim 和 SSL 拒绝

使用 ansible 验证 firewalld 配置

Linux 如何使用 PCID 的值?

如何从 2 个文件中获取内容并使用 shell 脚本将该内容附加到新文件中

matlab中linux和windows上regexp()的不同行为

使用 awk 将 csv 拆分为带有标题的多个文件

如何使用 sed debug调试正则表达式?

从 .war 文件外部化 Tomcat webapp 配置

如何在 shell 脚本中动态生成新的变量名?

什么是最有效的不区分大小写的 grep 用法?

如何克隆 OpenLDAP 数据库

在 C 中设置环境变量

如何让 GNU 屏幕读取 .bash_profile/.bash_rc 更改?

如何运行我所有的 PHPUnit 测试?

在 Linux / Mono 上运行 ServiceStack 的最佳方式是什么?

ngrok 如何在防火墙后工作?

Android - 找不到命令

适用于 Windows、Linux、MacOS X 的跨平台脚​​本