Je programme depuis environ un an et demi sous Windows et je commence tout juste à m'habituer à la façon dont les choses fonctionnent sur cette plate-forme, mais maintenant, le développement sur Linux m'intéresse et j'ai des difficultés. s’habituer au workflow, au manque d’EDI et à la compilation en ligne de commande avec GCC. J'exécute Xubuntu 13.10 64bit, au fait ..
Pour tester les choses, j'ai fait ce que beaucoup de gens font et j'ai écrit un programme rapide 'hello world' en C++.
#include <iostream>
int main()
{
std::cout << "Hello!\n";
return 0;
}
Mon premier problème est; ce programme semble avoir une erreur de compilation lorsque j'essaie de le compiler avec GCC, mais il compile correctement lorsque j'utilise le compilateur 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
Que se passe-t-il ici? GCC ne reconnaît-il pas que mon code est C++ ou quelque chose du genre?
Mon deuxième problème concerne l’utilisation de bibliothèques: j’avais l’impression que les bibliothèques de développement GTK + 3.0 sont incluses dans (X) ubuntu, mais lorsque j’essaie de suivre le tutoriel simple ici , j’obtiens l'erreur suivante de 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.
J'ai donc interprété cela comme signifiant que les bibliothèques pour GTK + 3.0 ne sont pas installées. J'ai donc vérifié apt-get, et je n'ai rien vu qui ressemble à ce dont j'avais besoin. Dois-je construire GTK? +3,0 à partir de la source, ou y a-t-il un PPA quelque part dont j'ai besoin ??
Ces problèmes sont vraiment frustrants pour moi. Je sais que beaucoup de gens ne jurent que par le flux de travail de développement GNU/Linux, mais habitué à travailler dans Visual Studio, je trouve le processus quelque peu opaque et peu intuitif. En ce moment, j'utilise Mousepad sur Xubuntu pour modifier mon code. Bien que sa syntaxe soit codée par couleur, il semble ne faire que très peu de choses au-delà. Je sais que je devrai gérer plusieurs fichiers et créer des fichiers makef et, à ce stade, je le redoute!
Quelle que soit l’aide que vous puissiez apporter à un programmeur novice et au total Linux/GNU noob, elle est la bienvenue!
Tout d'abord, vous n'avez pas à vous contenter d'un IDE. Installez Eclipse, il est disponible dans le Centre logiciel Ubuntu. Vous souhaitez également installer CDT pour Eclipse, ce qui vous permet de prendre en charge C/C++. Deuxièmement, je vous conseillerais beaucoup de vous concentrer sur C++ et Qt au lieu de C et GTK. Qt est un excellent framework multi-plateformes qui utilise C++ et QML (un langage de type JavaScript pour l'interface utilisateur), et Ubuntu s'oriente de plus en plus vers l'utilisation de Qt pour leur futur développement sur postes de travail et mobiles. Ces outils vous permettront non seulement de créer de belles applications pour le bureau Ubuntu, mais également pour Android, Windows, Mac, BlackBerry et autres systèmes d’exploitation. Un excellent IDE spécifique à Qt est QtCreator, également disponible dans le Centre logiciel Ubuntu. Vous devriez le découvrir dans certains tutoriels sur Qt.
Pour répondre directement à votre question, même si je vous recommande vivement de faire ce que j'ai décrit ci-dessus, vous avez probablement besoin des versions -dev des bibliothèques que vous utilisez. Pour GTK 3, vous devrez probablement:
Sudo apt-get install libgtk-3-dev
Cela devrait vous donner tous les en-têtes GTK 3.