c++ - 对 > `std::ostream::operator<<(unsigned long)' 的未定义引用
问题描述
我有以下代码:
#include <sstream>
using namespace std;
int
main ()
{
ostringstream oss;
unsigned long k = 5;
oss << k;
}
使用以下参数编译:
/usr/local/gcc-10.2.0/bin/g++ -I/usr/local/gcc-10.2.0/include -L/usr/local/gcc-10.2.0/lib64 -Wl,-rpath,/usr /local/gcc-10.2.0/lib64 -lstdc++ b.cpp
得到以下输出:
/tmp/cclRSXGV.o: 在函数
main': b.cpp:(.text+0x35): undefined reference to
std::ostream::operator<<(unsigned long)'
collect2:错误:ld 返回 1 个退出状态
需要什么才能正确编译和链接?
使用 GNU gcc 10.2.0。
解决方案
当您指定要链接的库时,顺序很重要。按照这个顺序
-lstdc++ b.cpp
libstdc++
不会解析b.cpp
. 指定库后记:
b.cpp -lstdc++
推荐阅读
- rest - 如何在 WSO2 中将 API Rest url 模板值用于调用模板
- shopify - 检查 Shopify Liquid 中是否不存在 compare_price
- python - 线性回归 K 折不起作用(ValueError: Expected 2D array, got 1D array instead:) - inside a for loop
- ios - 以检索到的 + 最后播放的顺序显示和播放 MPMediaItem 歌曲
- javascript - 为什么使用 cloneNode() 创建多个音频文件会阻止我控制音频源的属性以及如何覆盖它
- rust - 如何构建独立的测试二进制文件以在调试器下运行?
- java - 如何在 Spring Data JPA Query 中将字符串转换为 IP 地址
- python-3.x - 使用 JSON 数据,python 使用 for 循环构建 REST url
- flutter - Flutter:卡片 UI/UX
- javascript - 在adonis 5中将生产环境更改为测试环境