Comment lier des bibliothèques dans Xcode 4?

Je suis un débutant du Xcode d’Apple, mais j’ai suivi la documentation de Xcode et les conseils de quelques questions connexes sans succès.

J’ai installé GMP dans / usr / local / bin, écrit un court programme utilisant la bibliothèque et compilé avec gcc main.c -lgmp . Il a compilé sans avertissements ni erreurs, et l’exécutable a fonctionné sans faille.

J’ai démarré un nouveau projet Xcode (Outil de ligne de commande; Type: C), copié le code dans le fichier main.c nouvellement créé et ouvert les parameters de construction du projet. À partir de là, je règle Linking> Other Linker Flags sur -lgmp et Search Paths> Library Search Paths sur /usr/local/bin . Cependant, la construction échoue avec l’erreur de préprocesseur “Gmp.h: Aucun fichier ou répertoire de ce type”.

J’ai essayé presque tous les en-têtes imaginables:

#include "gmp.h"

#include

#include "gmp"

#include "libgmp.a" . . .

Cela a été mon principal obstacle au cours des trois derniers mois, ce qui m’a empêché d’apprendre le C. L’aide qui me conduirait à une solution éventuelle serait grandement appréciée.

    Il y a quelques choses que vous devez configurer dans votre projet Xcode. Par exemple, gmp est installé dans /opt/gmp/5.0.2 et je l’utiliserai à titre d’exemple. La bibliothèque actuelle est installée dans /opt/gmp/5.0.2/lib et les fichiers d’en-tête dans /opt/gmp/5.0.2/include . Lors de l’installation de la bibliothèque, définir l’indicateur /opt/gmp/5.0.2 sur /opt/gmp/5.0.2 le /opt/gmp/5.0.2 automatiquement. Si vous ne définissez pas cet indicateur, le préfixe est généralement défini par défaut sur /usr/local .

    1. Les autres drapeaux de l’éditeur de liens semblent corrects, il devrait s’agir du nom de la bibliothèque.
    2. Définissez le chemin de recherche d’en-tête sur le répertoire include, dans mon cas, /opt/gmp/5.0.2/include .
    3. Définissez le chemin de recherche de la bibliothèque sur le répertoire lib, dans mon cas, /opt/gmp/5.0.2/lib .

    Puisque le chemin de recherche de l’en-tête a été défini, vous devriez maintenant pouvoir inclure le fichier d’en-tête comme ceci:

     #include  

    Bien sûr, remplacez /opt/gmp/5.0.2 par le chemin PREFIX que vous avez utilisé lors de l’installation de gmp.

    Enfin, généralement, vous n’installez pas de bibliothèques dans /usr/local/bin , vous devez l’installer dans /usr/local et laisser les fichiers binarys être installés dans bin tandis que les bibliothèques de ce type seraient installées dans lib. Bien sûr, tout schéma de chemin fonctionnerait, je recommande habituellement /opt// car cela me permet de garder une meilleure trace de ce que j’ai installé et d’avoir plusieurs versions des mêmes bibliothèques et outils sans avoir pour faire face à des collisions.

    J’ai mis à jour mon système de léopard des neiges en lion de montagne et j’ai dû installer gmp .

    Tout d’abord, j’ai installé Xcode CommandLineTools set.

    Deuxièmement, installé Homebrew . Ensuite, j’ai effectué les étapes suivantes dans cette rubrique: https://apple.stackexchange.com/questions/38222/how-do-i-install-gcc-via-homebrew

    Lors de ma dernière étape, j’ai apporté des modifications à un projet xcode, comme l’a expliqué son collègue Marcus Karlsson. Ça fonctionne enfin! Très grand merci 🙂