Ответ 1
Используйте g++
g++ -o hi hi.cpp
g++ для С++, gcc для C, хотя с -libstdС++ вы можете скомпилировать С++. Большинство людей этого не делают.
Я сделал файл 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
и я получил некоторые ошибки, которые выглядят следующим образом:
[[email protected] ~]$ 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
[[email protected] ~]$
Что означают эти ошибки? Мой код правильный, то почему я получаю ошибки?
Используйте g++
g++ -o hi hi.cpp
g++ для С++, gcc для C, хотя с -libstdС++ вы можете скомпилировать С++. Большинство людей этого не делают.
Как говорят другие ответы, используйте g++ вместо gcc.
Или используйте make: make hi
Вы должны использовать g++ (как упоминалось в других ответах). Кроме того, вы можете подумать о том, чтобы предоставить в командной строке некоторые полезные параметры (что позволяет избежать неправильного формирования кода):
g++ -O4 -Wall hi.cpp -o hi.out
^^^^^ ^^^^^^
optimize related to coding mistakes
Более подробно вы можете обратиться к man g++ | less
.
Попробуйте следующее:
g++ -o hi hi.cpp
gcc только для C
$g++ 1st.cpp -o 1st
$./1st
если вы обнаружили какую-либо ошибку, сначала установите g++, используя код ниже
$sudo apt-get install g++
затем установите g++ и используйте выше код запуска
g++ -o foo foo.cpp
g++ → Драйвер для компилятора cc1plus
-o → Указывает выходной файл (foo - это имя выходного файла здесь. Может быть любое имя)
foo.cpp → Исходный файл для компиляции
В выполнить скомпилированный файл просто введите
./foo