2016-12-07 4 views
0

Ich bin ziemlich neu zu programmieren mit c und ich habe eine harte Zeit einschließlich der squash Bibliothek in meinem Programm.C: Wie wird die Squash-Komprimierungsbibliothek eingebunden?

Ich klonte das Repository und lief ./configure und makesudo make install.

, dass die Dateien installiert:

/usr/local/lib/pkgconfig/squash-0.8.pc 
/usr/local/lib/libsquash0.8.so.0.8 
/usr/local/lib/libsquash0.8.so.0.8.0 
/usr/local/lib/libsquash0.8.so 
/usr/local/lib/cmake/Squash-0.8.0/SquashConfig.cmake 
/usr/local/bin/squash 

Und einige weitere Dateien in diesem Verzeichnis:

/usr/local/include/squash-0.8/ 
/usr/local/lib/squash/0.8/plugins/ 

In den Squash Beispiele der Bibliothek von #include <squash/squash.h> enthalten ist, aber wenn ich versuche, es i zu kompilieren erhalten fatal error: squash/squash.h: No such file or directory

Auch #include <squash-0.8/squash.h> funktioniert nicht, denn dann bekomme ich fatal error: hedley/hedley.h: No such file or directory Diese Datei ist befindet sich bei /usr/local/include/squash-0.8/squash/hedley/hedley.h

ich die Lösung erraten für einen erfahrenen C-Programmierer ist ziemlich einfach, aber ich bin hier versagt ..

Muss ich irgendeine Art von Umgebungsvariablen festlegen müssen der Compiler lassen die Bibliothek finden?

Und wie verknüpfe ich die Bibliothek auf jeden Fall mit dem Compiler? Ich fand etwas wie:

-rdynamic ../squash/libsquash0.8.so.0.8 aber konnte es wegen des oben genannten Fehlers noch nicht testen.

Antwort

1

Try

#include <squash/squash.h> 

zu

#include "squash/hedley/hedley.h" 

oder

#include "<squash-0.8/squash/hedley/hedley.h>" 

einfacher und schnellen Lösung hinzugefügt würde den Pfad zu ändern, um Ihren während der Kompilierung enthält:

-I/usr/local/include/squash-0.8/squash/ 
+0

Ich habe das versucht, aber das kann nicht die Lösung sein. In der Haupt-Header-Datei 'squash.h' gibt es mehr Header, die enthalten sind wie' hedley.h', also müsste ich 10+ Header-Dateien in der 'squash.h'-Datei umbenennen. Ich bezweifle, dass dies der beabsichtigte Weg ist, die Bibliothek zum Laufen zu bringen. – Crocboss

+0

Sie können Ihren Compiler anweisen, den Pfad zu den Squash-Includes zu den Standard-Include-Pfaden hinzuzufügen. –

+0

@Crocboss siehe Bearbeiten: Sie können Ihren Compiler nach Header-Dateien in Squash-0.8/Squash/wie Paul darauf hingewiesen hat. –

Verwandte Themen