GCC konnte die Headerdatei in einer enthaltenen Bibliothek nicht finden

8

Ich versuche, eine Bibliotheksdatei mit dem Namen libmathematica.a in gcc aufzunehmen, damit sie im ausführbaren Beispiel verknüpft wird.

Ich versuche dies mit gcc main.c libmathematica.a -o example

zu tun

Hinweis: Ich muss dies mit gcc tun, da ld es nicht richtig mit den richtigen Systembibliotheken verknüpfen wird

Aber ich bekomme: fatal error: mathematica.h: No such file or directory , was seltsam ist, weil mathematika.h in der Bibliothek ist.

Können Sie mir helfen?

    
Corwin Mcknight 05.05.2012, 17:41
quelle

3 Antworten

11

Eine Header-Datei kann nicht in der Bibliothek sein. Es muss an einem bestimmten Ort vorhanden sein und Sie müssen diesen Ort mit dem Compiler-Flag -I angeben:

%Vor%

Wenn sich die Headerdatei in dem Verzeichnis befindet, in dem sich main.c befindet, oder in einem Unterverzeichnis, dann stellen Sie sicher, dass Sie Anführungszeichen und keine spitzen Klammern in der #include -Direktive verwenden.

    
Hristo Iliev 05.05.2012, 17:47
quelle
1

Versuchen Sie, zum gcc-Aufruf hinzuzufügen - eine Option wie    -I / Vollständig / Pfad / Nach / Das / Verzeichnis / Wo / der / gewünscht / Header / residiert

Zum Beispiel:   gcc -I / usr / include / mathematica -lmathematica -o Beispiel main.c

    
Yotam 05.05.2012 17:46
quelle
1

Das Problem wäre in Ihrer Quelldatei. Wenn die Mathematica.h im System Verzeichnis enthält, dann würden Sie #include <mathematica.h> verwenden und wenn es in einem lokalen Verzeichnis wäre, würden Sie etwas wie #include "libs/mathematica.h" verwenden.

    
Timothy Swartz 05.05.2012 17:45
quelle

Tags und Links