GCC impossible de trouver le fichier d'en-tête dans une bibliothèque incluse
Je suis en train d'essayer d'inclure un fichier de bibliothèque nommée libmathematica.un dans gcc, de sorte qu'il devient lié à l'exécutable exemple.
Je tente de le faire avec gcc main.c libmathematica.a -o example
Note: je dois le faire avec gcc, comme la ld de ne pas lier correctement avec le bon système de bibliothèques
Mais j'obtiens: fatal error: mathematica.h: No such file or directory
,ce qui est étrange parce que mathematica.h est dans la bibliothèque.
Pouvez-vous aider?
OriginalL'auteur Corwin Mcknight | 2012-05-05
Vous devez vous connecter pour publier un commentaire.
Un fichier d'en-tête ne peut pas être dans la bibliothèque. Il doit être présent à un endroit précis et vous devez spécifier l'emplacement avec le
-I
compilateur drapeau:Si l'en-tête de fichier est dans le répertoire où le
main.c
est ou dans un sous-répertoire, alors assurez-vous que vous utilisez des guillemets et non des crochets dans le#include
directive.OriginalL'auteur Hristo Iliev
La question serait dans votre fichier source. Si le mathematica.h est dans le système comprend répertoire alors vous devez utiliser
#include <mathematica.h>
et si elle était dans certains répertoire local alors vous devez utiliser quelque chose comme#include "libs/mathematica.h"
.Où est le mathematica.h fichier situé? faire quelque chose comme find / -name "*mathematica.h" . Si c'est dans la principale comprend, par exemple /usr/include ensuite, vous pouvez utiliser #include <mathematica.h> sinon, il doit être placé dans le même répertoire que votre principal.c et utiliser #include "mathematica.h".
J'ai été y compris les dans de la bibliothèque, ce qui était faux.
OriginalL'auteur Timothy Swartz
Essayez d'ajouter à l'appel de gcc - une option comme
-I/Full/Chemin/Vers/Le/Dossier/Lorsque/le/souhaité/en-tête/réside
Par exemple:
gcc-I/usr/include/mathematica -lmathematica -o exemple principal.c
OriginalL'auteur Yotam