我在这里的最后一个问题的问题似乎是gcc而不是代码(代码错误已经解决,然后我注意到了gcc的问题)。我已经制作了一个简短的你好世界计划,我知道这是可以测试的:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!" << endl;
}
但是gcc仍然会抛出错误。
我将文件命名为“test.cpp”并将其直接存储在我的主文件夹中,然后尝试:
gcc ./test.cpp -o Test
gcc ~/test.cpp -o Test
gcc /home/josh/test.cpp -o Test
所有3次有和没有大写“测试”。
Gcc出现以下错误:
/tmp/ccre0DEJ.o: In function `main':
test.cpp:(.text+0xa): undefined reference to `std::cout'
test.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> > (std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cpp:(.text+0x14): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> > (std::basic_ostream<char, std::char_traits<char> >&)'
test.cpp:(.text+0x1c): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
/tmp/ccre0DEJ.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x4a): undefined reference to `std::ios_base::Init::Init()'
test.cpp:(.text+0x59): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
我的问题是:如何修复Gcc?如果不是,我应该尝试其他编译器吗?
编辑:我已经尝试重新安装gcc,但仍然失败。答案 0 :(得分:1)
O.K。这是重复的(我通常可以在发布之前抓住它)。
答案在这里找到:undefined reference to 'std::cout'
我必须使用
g++ ~/test.cpp -o Test
而不是
gcc ~/test.cpp -o Test
注意:实际上,最好使用所有警告和调试信息进行编译,即将-Wall -Wextra -g
添加到g++
或gcc
命令。详细了解Invoking GCC。
答案 1 :(得分:0)
请尝试运行g ++或添加&#c; cpp标志&#39;命令,例如-lstdc ++,它将代码与c ++的标准库链接。
gcc可以编译cpp代码,但只能使用正确的标志。