Comment faire pour compiler en C et Gtk+ avec GCC sous Linux?
J'ai cherché et cherché mais je ne reçois pas les informations que je veux vraiment. Quelqu'un peut-il expliquer, comme totalement et fondamentalement possible, comment Gtk+ code est compilé lors de l'écriture en C, en utilisant GCC, sur Linux. Il y a des choses comme les backticks, "c99", et .o fichiers que je ne comprends pas du tout.
Je voudrais aussi apprécier toutes les ressources pour l'apprentissage de Gtk+ code. Toutes les sources que j'ai trouvé sont pour les versions 2.x, mais je pense 3.6 est la version actuelle.
Je tiens à réitérer, je suis seulement intéressé dans le code C. S'il vous plaît n'essayez pas à m'expliquer les avantages du C++ ou C#, j'ai lu tous d'entre eux. Je suis ici pour C. Merci!
- Je crains que cette question est trop large et mélange différents sujets. Compiler le code C sur Unix est un sujet en lui-même. Compiler Gtk code est juste une version spécifique de cette activité. Vous devriez probablement juste ramasser un livre d'introduction à la C. Compiler Gtk code deviendra évident par la suite.
- La question est parfaitement valide, mais je ne peux pas croire que quelqu'un ne peut pas obtenir ce vraiment de l'information de base: google.com/search?q=compiling+gtk renvoie à la documentation de GTK+2 dans la première ligne et pour GTK+3 dans le second.
Vous devez vous connecter pour publier un commentaire.
Pour commencer, vous écrivez votre code en C, dire "hello_world_gtk.c", puis vous compilez et liez contre Gtk, par l'utilisation appropriée du compilateur et de l'éditeur de liens drapeaux. Ces indicateurs sont donnés par le pkg-config outil. Pour obtenir le nécessaire drapeaux du compilateur, vous appelez ça de l'outil avec:
Pour le lien drapeaux:
Les backticks vous permettent d'obtenir à la sortie de pkg-config et de la transmettre en tant qu'arguments de gcc:
Mais vous n'êtes pas obligé d'utiliser des backticks. Vous pouvez simplement copier&coller les drapeaux manuellement si vous le souhaitez.
Pour Gtk 3, remplacer "2.0" avec "3.0". Si pkg-config rapports qu'il ne trouve pas le paquet, puis vous n'avez pas à installer Gtk paquet de développement offert par votre distribution Linux.
Si vous n'avez généralement pas à comprendre comment vous compiler quelque chose dans les fichiers objets et les lier ensuite, vous ne devriez pas commencer avec Gtk, mais avec la plaine C à la place. Une fois que vous êtes familier avec la base absolue de la compilation et la liaison, alors vous pouvez passer à des applications Gtk.
Comme les autres ont dit, votre question est trop large. Elle interroge sur les backticks (base de la syntaxe shell), ce qui est ".o" fichiers de base (programmation), et GTK programmation (un peu de programmation avancée).
Mais d'y répondre du mieux que je peux, et en supposant que vous venez d'avoir un seul fichier source, utilisez
où "exemple.c" est le nom de votre source. En voici le détail:
Utiliser les drapeaux "Mur" et "-Wextra" de sorte que vous pouvez voir tous les avertissements (et corriger).
Utiliser le "std" drapeau à définir votre C dialecte. Il en existe plusieurs et gcc a soit totale ou partielle de soutien pour la plupart d'entre eux. Lire les pages de manuel ou des pages d'informations pour plus d'informations. À l'aide de "c99", comme ci-dessus n'est pas un mauvais choix.
Et utilisation de pkg-config et de la substitution de commande (c'est à dire, backticks) pour définir les bibliothèques et les comprend. Notez que vous pouvez faire les deux à la fois, bien que beaucoup de gens l'utiliser deux fois par deux backticked versions de pkg-config. Backticks remplacer le résultat de la commande dans un délai de tiques. Essayez d'exécuter le pkg-config dans les backquotes par lui-même sur la ligne de commande et vous verrez ce qu'il fait.
Malheureusement, il n'y a pas beaucoup de ressources pour les 3.x GTK code et la plupart sont encore en 2.x en fonction. Vous aurez juste à recourir soit à gtk listes de diffusion ou le manuel de référence.
Comme pour GTK 3.x, la raison pour laquelle vous ne pouvez pas compiler pour il est probable que votre distribution est GTK 2.x en fonction. Nouveaux distributions peuvent avoir installé GTK 3.x dans leur repos.
De l'Gtk Docs Prise En Main page:
Également vérifier Nikos C. du Aswer pour en savoir plus sur
pkg-config
.Mon
Makefile
:pkg-config --cflags gtk+-3.0
pkg-config --libs gtk+-3.0
en gtk2.0 exemple:
par gtk3.0 exemple: