Frage

Ich versuche, mein Programm unter Windows über Cygwin mit der Erstellung Befehl complie:

g++ ping.cpp -I./include -L./lib -lchartdir50

Ich verwende eine API namens DynaPDF die Charts für mich zieht. Ich habe Bibliotheken nie auf diese Weise verknüpft, bevor (in der Regel ich es durch Visual Studio tun), so bin ich ein wenig neu in diesem. Ich habe eine wirklich große Liste von Fehlern bekam, so dass ich nicht sie alle aufzuzählen, aber ich werde eine Liste nur die Art des Linkerfehlers zu klären, ich bin immer:

(.text$_ZN9BaseChartD1Ev[BaseChart::~BaseChart()]+0x4f): undefined reference to '_CBaseChart_destroy'

Alle diese sind nicht definiert Bezug auf 'xxx' Fehler.

Ich habe eine Reihe von Header-Dateien in ./include und eine Bibliothek namens chartdir50.lib in ./lib bekommt

Was ist falsch mit meiner Kompilation Linie?

War es hilfreich?

Lösung 3

Hmm ... das ist seltsam. Ich bin mit einem 64-Bit-System, aber aus irgendeinem Grunde habe ich versucht, es mit der 32-Bit-Bibliothek und es kompiliert. Dank!

Andere Tipps

Ich bin nicht sicher, aber .lib haben mit Visual C ++ kompiliert wurde?

Wenn ja, ich glaube nicht, dass es mit GCC kompatibel ist, haben Sie die Bibliothek mit GCC / G ++ zu kompilieren und diese Datei verwenden oder eine binärkompatibel zu verwenden, wenn Sie keinen Zugriff auf die Quelle.

ich die Bibliothek nie verwenden, aber wenn ich a href <= "http://www.google.co.jp/search?hl=en&client=opera&rls=en&hs=TQG&q=lchartdir&btnG=Search&aq=f&oq=" rel = "nofollow noreferrer"> es googeln, bemerkte ich, dass andere Leute wie -. lchartdir statt -lchartdir50 , so sollten Sie es versuchen

ich davon aus, dass lib mit gcc erstellt wurde.

AFAIK LIB ist statische Bibliothek, so dass Sie es mit -l-Compiler-Option nicht zeigen müssen.

Verwenden Sie einfach als eine andere Datei in der Befehlszeile, wie

g ++ ping.cpp -I./include -L./lib {path hier lib} /chartdir50.lib

hth.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top