Estou programando há cerca de um ano e meio no Windows e comecei a me acostumar com a maneira como as coisas funcionam nessa plataforma, mas agora estou interessado no desenvolvimento do Linux e um momento difícil para se acostumar com o fluxo de trabalho, falta de IDE e compilação de linha de comando com o GCC. Estou correndo Xubuntu 13.10 64bit, a propósito ..
Para testar as águas, fiz o que muitas pessoas fazem e escrevi um programa rápido de 'Olá mundo' em C ++.
#include <iostream>
int main()
{
std::cout << "Hello!\n";
return 0;
}
Meu primeiro problema é; este programa parece ter um erro de compilação quando eu tento compilá-lo usando o GCC, mas ele compila bem quando eu uso o compilador G ++:
gcc hello.cpp -o hello
/tmp/ccbmUmzf.o: In function 'main':
hello.cpp:(.text+0xa): undefined reference to 'std::cout'
hello.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> >&, char const*)'
/tmp/ccbmUmzf.o: In function '__static_initialization_and_destruction_0(int, int)':
hello.cpp:(.text+0x3d): undefined reference to 'std::ios_base::Init::Init()'
hello.cpp:(.text+0x4c): undefined reference to 'std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
O que está acontecendo aqui é o GCC não reconhecer que meu código é C ++ ou algo do tipo?
Meu segundo problema é tentar usar bibliotecas: fiquei com a impressão de que as bibliotecas de desenvolvimento do GTK + 3.0 vêm incluídas no (X) ubuntu, mas quando tento seguir o simples tutorial aqui , recebo o seguinte erro do G + +:
g++ hello.cpp -o hello
hello.cpp:1:21: fatal error: gtk/gtk.h: No such file or directory
#include <gtk/gtk.h>
^
compilation terminated.
Então, eu interpretei isso como significando que as bibliotecas para o GTK + 3.0 não estão instaladas .. Então eu verifiquei o apt-get, e eu realmente não vi nada que se parecesse com o que eu precisava .. Eu tenho para construir o GTK + 3.0 a partir do código-fonte, ou há algum PPA em algum lugar que eu precise?
Estas questões são realmente frustrantes para mim. Eu sei que muitas pessoas juram pelo fluxo de trabalho de desenvolvimento GNU / Linux, mas como alguém que está acostumado a trabalhar no Visual Studio, eu estou achando o processo um pouco opaco. e não intuitivo. Agora eu estou usando o Mousepad no Xubuntu para editar meu código, e embora ele tenha uma sintaxe codificada por cores, parece fazer muito pouco além disso. Eu sei que, eventualmente, vou ter que lidar com vários arquivos e criar makefiles e, neste momento, estou temendo isso!
Qualquer ajuda que você possa dar a um programador novato e ao total noob do Linux / GNU é muito bem-vinda!