FreeImage als statische Bibliothek in VS2010 verknüpfen?

8

Ich brauche eine Bildbibliothek und ich habe FreeImage, Ссылка untersucht. Ich möchte es statisch mit meiner Anwendung verknüpfen.

Ich habe versucht, die Binärdateien herunterzuladen und verlinken, aber ich bekomme 2019 Linker-Fehler, wenn ich versuche, ihre Funktionen aufzurufen, obwohl ich positiv bin, verknüpfte ich es richtig.

Also habe ich versucht, ihre Quelle herunterzuladen, ihre "FreeImageLib.2008" nach VS2010 konvertiert und gebaut. Es baut sich zwar gut alleine auf, aber ich habe immer noch das gleiche Problem, wenn ich dagegen verlinke, meine Anwendung, die es verwendet, immer noch Beschwerden über Linker-Fehler.

Ich setze auch die gesamte Projektkonfiguration auf meine anderen Projekte, so dass kein Konflikt mit / MDd oder / MTd usw. besteht.

Ich habe etwas in ihrer Quelle gegraben und es gibt Makros wie "FREEIMAGE_LIB", was darauf hindeutet, dass es beim Erstellen einer statischen Bibliothek definiert werden sollte, und es ist definiert, aber es funktioniert trotzdem nicht.

Ich habe gegoogelt und kann keine soliden Antworten auf dieses Problem finden. Die Antwort auf Getting FreeImage mit Visual Studio 2010 zu arbeiten macht kein Unterschied; Ich habe das Makro bereits entweder vor dem Einfügen des Headers oder als Präprozessor-Argument definiert, aber es funktioniert nicht.

Soll diese Bibliothek nicht als statische Bibliothek verwendet werden, oder was könnte das Problem sein? Hat jemand FreeImage statisch auf VS2010 + verlinken können?

Danke

    
KaiserJohaan 24.04.2013, 07:44
quelle

1 Antwort

11

Ja, ich konnte FreeImage statisch auf mehreren Visual Studio-Versionen verlinken. Hier beschreibe ich, wie ich das normalerweise mache.

Mit FreeImage haben wir standardmäßig 8 Optionen, um es mit Ihrer App zu verknüpfen:

FreeImage - dynamischer Link (Sie benötigen dll).

FreeImageLib - statische Verbindung.

Jeder von diesen kann mit "Debug" oder mit "Release" -Konfigurationen und für Win32 oder Win64 Plattformen gebaut werden.

Nehmen wir an, wir benötigen (Static & amp; Win32 & amp; & amp; Debug) und (Static & amp; Win32 & amp; & amp; Release) Varianten für unsere App. Auch in unserer App verwenden wir Dynamic Runtime Library (standardmäßig FreeImage für statische aus irgendeinem Grund eingerichtet) Wie wir es normalerweise haben:

  • Laden Sie die neue Version herunter und entpacken Sie sie (oder bereinigen Sie die alte Distribution)

  • Öffnen Sie FreeImage.2008.sln Wählen Sie ALLE 10 Projekte mit Umschalt + Klick aus. Dann wählen wir in "Projekteigenschaften / C ++ / Codegenerierung" / MDd für die Konfiguration "Debug" und / MD für "Release".

  • Dann gehen wir zu "Menü / Build / Batch build", wählen Sie:

    FreeImageLib | Debug | Win32

    FreeImageLib | Release | Win32

und drücken Sie "Build".

  • Warten Sie, bis die gewünschten Konfigurationen erstellt wurden. Alles, was wir brauchen, wird in FreeImage\Dist Ordner

  • kopiert
  • in FreeImage\Dist Ordnerüberprüfungsdateien: %Code% %Code% %Code% %Code% Überprüfen Sie Erstellungsdatum und -uhrzeit. Es muss frisch gebacken und heiß sein. Wenn nicht, kopiere sie von delete.me und FreeImage.h .

  • In der Hauptanwendung fügen Sie hinzu, um lib FreeImage.lib und FreeImaged.lib zu Debug-Konfigurationen und FreeImage\Source\FreeImageLib\Debug zu Releases einzuschließen.
  • In Quelldatei einschließen:

    FreeImage\Source\FreeImageLib\Release

    FreeImage\Dist

  • Versuchen Sie anzurufen %Code% FreeImaged.lib

  • Es sollte funktionieren

Glückliche Kodierung!

    
Drop 24.04.2013, 13:55
quelle

Tags und Links