Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未定义对'的引用;标准:cout';_C++_C++11_Gcc_Cout - Fatal编程技术网

C++ 未定义对'的引用;标准:cout';

C++ 未定义对'的引用;标准:cout';,c++,c++11,gcc,cout,C++,C++11,Gcc,Cout,例如: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } #包括 使用名称空间std; int main() { 无法使用以下命令编译程序: g++ -Wall -Wextra -Werror -c main.cpp -o main.o ^^^^^^^^^^^^^^^^^^^^ <- For listing all warnings

例如:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hola, moondo.\n";
}
#包括
使用名称空间std;
int main()
{

无法使用以下命令编译程序:

g++ -Wall -Wextra -Werror -c main.cpp -o main.o
     ^^^^^^^^^^^^^^^^^^^^ <- For listing all warnings when your code is compiled.

是的,使用
g++
命令对我有效:

g++ my_source_code.cpp
生成文件 如果您使用的是makefile,并且您最终像我一样来到了这里,那么这可能就是您正在寻找的或:

如果您使用的是makefile,则需要更改
cc
,如下所示

my_executable : main.o
    cc -o my_executable main.o


假设
code.cpp
是源代码,以下内容不会引发错误:

make code
./code

这里,第一个命令编译代码并创建一个同名的可执行文件,第二个命令运行它。在这种情况下,不需要指定“代码> G++< /COD>关键字”。

尝试“代码> G++<代码>,而不是<代码> GCC < /C> >。<代码> GCC < /C> > C,并且不允许您访问C++标准库。我解决了这个问题。据我所知,GCC是Gnu编译器集合的首字母缩写。它不应该在需要时调用g++编译器吗?因此命令GCC调用c编译器…@D1X,这是因为您单独调用了链接器。当您编写
GCC-o edit main.o
时,它不知道
main.o
正在运行需要C++启动库。RTFM Q:在需要时不应该调用G++编译器吗?答:不需要GCC调用GoFrTRAN、GJC……等。它可以用来编译C++代码,但它不与C++库连接。<代码> GCC < /C> >如果只添加<代码> -LSTDC++< /COD>,请务必工作。请始终包含
-Wall
在给出gcc/g++命令行示例时-这有助于让noobs在早期养成良好习惯,并为每个人节省更多的时间;-)从什么时候开始iostreams和
std::cout
成为标准模板库的一部分?为什么需要-Werror?我已经修改了文档,如果我理解得很好,我会将警告设置为错误,会使我的项目不容易编译。@D1X:因为程序员有一个讨厌的习惯,就是忽略警告。实际上,
-Wall
甚至
-Wextra
警告的所有内容要么是一个非常真实的问题,要么是可以很容易修复的草率编码。这里的信息是进入一个habi如果你认为编译器警告是一个有用的指针,那么你的代码可以被改进,而不是讨厌。这里有上百个问题,如果OP使用了<代码>墙-WUTAUT/代码>,那么就没有必要了。<代码> - Werror <代码>只是加强了。然后运行<<代码> /A.OUT/<代码>另一个很好的快速介绍,使实用程序。
gcc main.cpp -lstdc++ -o main.o
g++ my_source_code.cpp
my_executable : main.o
    cc -o my_executable main.o
CC = g++

my_executable : main.o
    $(CC) -o my_executable main.o
make code
./code