Про компилятор gcc слышали наверное все. Это стандартный компилятор C/C++ в Linux. А вот его «коллега» g++ известен меньше.
Решил я тут как-то на днях скомпилировать программу средствами gcc. Обычно для этих целей я использовал различные IDE (Qt Creator, MonoDevelop и др.), поэтому не видел всей «кухни» происходящей внутри. Тут решил заглянуть внутрь. Программа была простой.
#include <iostream> int main(int argc, char **argv) { std::cout << "Hello, world!" << std::endl; return 0; }
набрав в терминале команду:
$ gcc hello.cpp -o hello
я получил целый ворох ошибок, типа «undefined reference to ‘std::cout'» и ей подобных. Как так?
Полазив немного по интернету, я понял свою ошибку. Компилятор gcc предназначен для компиляции программ, написанных на языке C, я же пытался скомпилировать в нем программу на языке C++. Для них предназначен g++. Изменив команду на
$ g++ hello.cpp -o hello
я получил готовый исполняемый модуль.