错误 "undefined reference to 'std::cout'"

14 浏览
0 Comments

错误 "undefined reference to 'std::cout'"

以下是示例:

#include 
using namespace std;
int main()
{
    cout << "Hola, moondo.\n";
}

它报错:

gcc -c main.cpp gcc -o edit main.o main.o: In function `main':

main.cpp:(.text+0xa): 对‘std::cout’未定义的引用

main.cpp:(.text+0xf): 对‘std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)’未定义的引用

main.o: In function `__static_initialization_and_destruction_0(int,int)':

main.cpp:(.text+0x3d): 对‘std::ios_base::Init::Init()’未定义的引用

main.cpp:(.text+0x4c): 对‘std::ios_base::Init::~Init()’未定义的引用 collect2: error: ld

返回了1个退出状态 make: *** [qs] Error 1

另一个示例:

#include 
int main()
{
    std::cout << "Hola, moondo.\n";
}

它报错:

gcc -c main.cpp gcc -o edit main.o main.o: In function `main':

main.cpp:(.text+0xa): 对‘std::cout’未定义的引用

main.cpp:(.text+0xf): 对‘std::basic_ostream >& std::operator<<>(std::basic_ostream >&, char const*)’未定义的引用

main.o: In function `__static_initialization_and_destruction_0(int,int)':

main.cpp:(.text+0x3d): 对‘std::ios_base::Init::Init()’未定义的引用

main.cpp:(.text+0x4c): 对‘std::ios_base::Init::~Init()’未定义的引用 collect2: error: ld

返回了1个退出状态 make: *** [qs] Error 1

注意:我正在使用Debian 7(Wheezy)。

0
0 Comments

(Error "undefined reference to 'std::cout'")这个问题的出现的原因是在编译代码时,没有正确链接C++标准库。

要解决这个问题,可以在编译代码时添加-lstdc++参数,以指示编译器链接C++标准库。正确的命令如下:

g++ code.cpp -o code -lstdc++

其中,code.cpp是源代码文件的名称,code是生成的可执行文件的名称。

这样,编译器将正确链接C++标准库,并且不再出现(Error "undefined reference to 'std::cout'")的错误。

0
0 Comments

"undefined reference to 'std::cout'"是一个编译错误,意思是在代码中找不到对std::cout的引用。下面是出现这个问题的原因和解决方法。

这个问题通常发生在使用gcc编译C++代码时,因为C++标准库中包含了std::cout,而gcc编译器需要使用-lstdc++参数进行显式链接。而g++编译器在默认情况下会自动链接标准库,所以不会出现这个问题。

解决这个问题的方法有两种。第一种是使用g++编译器来代替gcc编译器,因为g++编译器会自动链接标准库。可以使用以下命令编译代码:

g++ main.cpp -o main.o

第二种方法是在使用gcc编译器时添加-lstdc++参数来显式链接标准库。可以使用以下命令编译代码:

gcc main.cpp -lstdc++ -o main.o

另外,为了更好地习惯使用编译器的警告信息,建议在编译代码时加上-Wall参数,它可以列出所有的警告信息。可以使用以下命令编译代码:

g++ -Wall -Wextra -Werror -c main.cpp -o main.o

这样可以帮助开发者养成良好的编码习惯,并且可以节省以后的开发时间。

另外,还可以添加-Wextra参数来增加额外的警告信息,以及添加-Werror参数将警告转换为错误。这样可以强制开发者修复所有的警告信息,以提高代码的质量。

总结起来,当出现"undefined reference to 'std::cout'"的错误时,可能是因为使用了gcc编译器而没有显式链接标准库。解决方法是使用g++编译器或者在使用gcc编译器时添加-lstdc++参数来链接标准库。另外,建议在编译代码时加上-Wall和-Wextra参数来获取更多的警告信息,并使用-Werror参数将警告转换为错误。这样可以帮助开发者养成良好的编码习惯,并提高代码的质量。

0
0 Comments

错误原因:在使用gcc编译器时,出现了"undefined reference to 'std::cout'"的错误。

解决方法:使用g++编译器替代gcc编译器来解决这个问题。

具体步骤如下:

1. 打开终端或命令提示符。

2. 使用以下命令编译源代码文件:

   g++ my_source_code.cpp
   

这将使用g++编译器来编译源代码文件。

3. 编译成功后,使用以下命令运行可执行文件:

   ./a.out
   

这将运行编译生成的可执行文件。

这个方法适用于出现"undefined reference to 'std::cout'"错误的情况,因为这个错误通常是由于使用gcc编译器而不是g++编译器导致的。通过使用g++编译器,可以解决这个问题并成功编译和运行代码。

0