libstdc++.so.6:添加符号时出错:命令行中缺少 DSO
libstdc++.so.6: error adding symbols: DSO missing from command line
我已经开始在 Ubuntu 上学习C++。我也只有几个月的时间使用Linux。
我正在尝试将 2D 球碰撞脚本从 Javascript 移植到 C++ 以用于学习目的。
我正在使用simple2D进行绘图C++:https://github.com/simple2d/simple2d
我去运行这个命令:
simple2d build c-code-test.cpp
我收到此回复:
cc1plus: warning: command line option ‘-std=c11’ is valid for C/ObjC but not for C++
/usr/bin/ld: /tmp/ccl07DBG.o: undefined reference to symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
由于我对 Linux 和C++的新鲜感,我无法根据之前关于堆栈溢出的问题做出正确的推论来解决这个问题。我已经安装了libstdc++6,所以我会正确链接。
有人可以引导我完成步骤 1、2、3 ...请?谢谢你!
您看到的错误似乎是由于试图将C++编译为C。 命令行选项是选择 C11 标准,该标准适用于 C,而不是 C++。 缺少符号是因为C++库未链接,当将程序链接为 C 时也会发生这种情况。
我没有使用simple2d,但我在这里的猜测是他们编写的编译脚本不支持C++或者您需要C++使用某些选项。 如果我们看一下文档:
simple2d 构建命令是编译 单个源文件。当然,你也可以直接使用编译器, 例如在类Unix系统上:
cc triangle.c 'simple2d --libs' -o triangle
你为什么不尝试像他们的例子那样直接调用编译器。 但是您需要使用g++
而不是cc
。 像这样:g++ c-code-test.cpp `simple2d --libs` -o c-code-test
这是 simple2d 脚本的一个错误。
他们基本上对C++使用了错误的构建命令。
您可以通过修补我链接到的修复程序或使用 TrentP 显示的手动构建步骤来解决此问题。
或者等待 v1.1.0 之后的下一个版本。
- 从命令行c++发送文本文件名
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 数组长度,为什么从命令行获取时不能使用它?
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- CMake "--target install"无需"--build"命令行
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 使用 C++ 将命令行参数拆分为参数/向量
- libstdc++.so.6:添加符号时出错:命令行中缺少 DSO
- 仅在从命令行构建Qt项目时出错
- 检索命令行参数时出错
- openCV 2.4.7 添加符号时出错:命令行中缺少 DSO
- 安装用C++编写的Python包(leven)时出错:g++无法识别的命令行选项--输出lib
- 添加符号时出错:命令行中缺少DSO
- 代码在xcode中运行良好,但在命令行中出错
- 通过命令行使用R时出错
- 通过命令行编译.cpp程序时出错