2010-03-25 8 views
5

Ich habe die ImageMagick-Quelle heruntergeladen, den Assistenten kompiliert, um eine Visual Studio-Lösung für statische Verknüpfung zu erstellen, und die statische Bibliothek Magick ++ Projekt in meinem Beispielprojekt (Code unten). Ich habe auch eine Abhängigkeit von diesem Projekt hinzugefügt und die .lib-Datei in die Lösung aufgenommen, nichts hilft.ImageMagick statische Kompilierung mit einem anderen Projekt gibt Linker Fehler

#include <Magick++.h> 

int main() 
{ 
    Magick::Image image; 
    bool test = image.isValid(); 
    return 0; 
} 

gibt diese mehrere Linkerfehler, wie zum Beispiel:

nicht aufgelöstes externes Symbol "__declspec (dllimport) public: virtual __thiscall Magick :: Bild :: ~ Bild (void)" (__imp _ ?? 1Image @ Magick @@ UAE @ XZ) referenziert in Funktion _main

Warum kann es die Implementierung nicht finden?

Ich bin mit Visual Studio 2010 Beta 2

+0

Ich habe ein sehr ähnliches Problem. – Seth

Antwort

2

Das Problem von ansteigen kann, dass Sie unterschiedliche Compiler verwenden als die Bibliothek kompiliert wurde. Da Ihr Compiler ziemlich neu ist, ist es sehr wahrscheinlich, dass er eine andere Namensgebung verwendet und keine Methodensignaturen in der Bibliothek finden kann.

0

Dieser Fehler ist seltsam - Der Compiler sucht nach einer Funktion aus einer DLL (__declspec (dllimport)). Sind Sie sicher, dass Sie die richtigen Header-Dateien verwenden?