Como uso as bibliotecas de desenvolvimento do GTK + no Ubuntu?

4

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!

    
por MrKatSwordfish 06.12.2013 / 05:50

1 resposta

4

Conselhos

Primeiro de tudo, você não precisa se contentar com nenhum IDE. Instale o Eclipse, está disponível no Ubuntu Software Center. Você também deseja instalar o CDT para o Eclipse, que oferece suporte a C / C ++. Segundo, eu aconselho você a se concentrar em C ++ e Qt ao invés de C e GTK. O Qt é um ótimo framework multi-plataforma que usa C ++ e QML (uma linguagem parecida com JavaScript para a interface do usuário), e o Ubuntu está se movendo cada vez mais em direção ao uso do Qt para seu futuro desenvolvimento móvel e de desktop. Essas ferramentas permitem que você não apenas crie aplicativos bonitos para o desktop Ubuntu, mas também para Android, Windows, Mac, BlackBerry e outros sistemas operacionais. Um excelente IDE específico do Qt é o QtCreator, também disponível no Ubuntu Software Center, você deve conferir alguns tutoriais do Qt.

Resposta

Para responder à sua pergunta diretamente, mesmo que eu recomende strongmente fazer o que descrevi acima, você provavelmente precisará das versões -dev das bibliotecas que você usa. Para o GTK 3, você provavelmente precisará:

sudo apt-get install libgtk-3-dev

Isso deve dar a você todos os cabeçalhos do GTK 3.

    
por Nicolay Doytchev 06.12.2013 / 06:06