Jon*_*rio 7 c++ g++ linker-errors ld
我正在使用 g++ 9.2.1 和 binutils 2.34。我正在运行 Manjaro 19.0.2 和 Linux 内核 5.4.23-1。一切都来自于我刚刚安装的全新 Manjaro,我认为这可以解决问题。
在编译以下超级简单的程序时:
#include <iostream>
int main()
{
std::cout << "Hello" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我运行g++ main.cpp -o program,一切都很好,并且在执行 ./program 时我会收到 Hello。
但是,当我运行 g++ main.cpp -o main.o 时,它可以工作,但是当我运行 g++ main.o -o 程序时,出现以下错误:
/usr/bin/ld: main.o: _ZSt4cout: invalid version 3 (max 0)
/usr/bin/ld : main.o : error adding symbols: bad value
collect2: error: ld return 1 exit status
Run Code Online (Sandbox Code Playgroud)
我完全不知道它从哪里来。
Flo*_*mer 10
g++ main.cpp -o main.o不生成可重定位目标文件。输出是一个可执行文件。此类文件不能用于进一步链接。
要生成目标文件,请使用g++ -c main.cpp -o main.o。该-c标志指示 GCC 不要链接最终的可执行文件。
| 归档时间: |
|
| 查看次数: |
15885 次 |
| 最近记录: |