我创建了一个文件hi.cpp,我写了下面给出的命令:
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World! ";
cout << "I'm a C++ program";
return 0;
}
然后我使用以下命令在我的RHEL 6机器上运行它
gcc hi.cpp
我遇到了一些错误,如下:
[chankey@localhost ~]$ gcc hi.cpp
/tmp/cc32bnmR.o: In function `main':
hi.cpp:(.text+0xa): undefined reference to `std::cout'
hi.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> >&, const char*)'
hi.cpp:(.text+0x19): undefined reference to `std::cout'
hi.cpp:(.text+0x1e): 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> >&, const char*)'
/tmp/cc32bnmR.o: In function `__static_initialization_and_destruction_0(int, int)':
hi.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::Init()'
hi.cpp:(.text+0x51): undefined reference to `std::ios_base::Init::~Init()'
/tmp/cc32bnmR.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
[chankey@localhost ~]$
这些错误表示什么?我的代码是正确的,为什么我会收到错误?
答案 0 :(得分:51)
使用g ++
g++ -o hi hi.cpp
g ++适用于C ++,gcc适用于C,但使用-libstdc ++可以编译c ++,大多数人都不这样做。
答案 1 :(得分:13)
正如其他答案所说,使用 g ++ 而不是 gcc 。
或使用make:make hi
答案 2 :(得分:6)
你必须使用g ++(如其他答案中所述)。最重要的是,你可以考虑在命令行提供一些好的选项(这可以帮助你避免生成错误的代码):
g++ -O4 -Wall hi.cpp -o hi.out
^^^^^ ^^^^^^
optimize related to coding mistakes
有关详细信息,请参阅man g++ | less
。
答案 3 :(得分:3)
试试这个:
g++ -o hi hi.cpp
gcc仅适用于C
答案 4 :(得分:0)
$ g ++ 1st.cpp -o 1st
$ ./1st
如果您发现任何错误,请先使用以下代码安装g ++
$ sudo apt-get install g ++
然后安装g ++并使用上面的运行代码
答案 5 :(得分:0)
g++ -o foo foo.cpp
g ++ - &gt; Driver for cc1plus compiler
-o - &gt;表示输出文件( foo 是此处输出文件的名称。可以是任何名称)
foo.cpp - &gt;要编译的源文件
要执行编译的文件,只需输入
即可./foo
答案 6 :(得分:0)
g ++ file_name.cpp -o可执行文件名
(i)-o选项用于显示代码中的错误 (ii)如果code_file中没有错误,则它将生成 可执行文件。
./可执行文件名
答案 7 :(得分:0)
对于简单的测试项目,g++
或make
独立版本是很好的选择,正如已经回答的那样:
g++ -o hi hi.cpp
或
make hi
但是,对于实际项目,需要使用项目经理。在我撰写此答案时,最常用和开放源代码的是cmake
(替代方法可能是QT qmake)。
以下是一个简单的CMake示例:
确保在Linux发行版cmake
或apt-get install cmake
上安装了yum install cmake
。
与源文件CMakeLists.txt
一起创建文件hi.cpp
(名称很重要)
project("hi")
add_executable( hi hi.cpp )
然后编译并运行为:
cmake .
make
./hi
这使项目可以轻松地通过库,源等进行缩放。 使大多数IDE正确理解项目(大多数IDE原生接受CMake,例如kdevelop,qtCreator等。)
如果将来决定将软件移植到其他平台,还可以从CMake生成Visual-Studio或XCode项目。
cmake -G Xcode . #will generate `hi.xcodeproj` you can load on macOS