CMake importiertes Bibliotheksverhalten

8

Ich habe ein seltsames Problem mit CMake.

Ich importiere Curl in mein Projekt, also schreibe ich eine vereinfachte Zusammenfassung meiner CMakeLists.txt-Datei für Sie.

  

ADD_LIBRARY (libcurl SHARED IMPORTIERT)

     

SET_PROPERTY (ZIEL libcurl PROPERTY IMPORTED_LOCATION   ../ lib / libcurl.lib)

Wenn ich CMake ausführe, erzeugt es die Projektdateien für MS VC ++ (auch für Linux). Dann finde ich in der Projektdatei einen falschen Verweis auf die curl-Bibliothek ( libcurl-NOTFOUND )!

Wenn ich meinen Code in statischen Import ändere:

  

ADD_LIBRARY (libcurl STATISCH IMPORTED)

     

SET_PROPERTY (ZIEL libcurl PROPERTY IMPORTED_LOCATION   ../ lib / libcurl.lib)

Ich finde den richtigen Verweis auf ../ lib / libcurl.lib.

Haben Sie eine Idee, warum das passiert?

Vielen Dank!

    
Antonio Petricca 13.02.2013, 09:55
quelle

1 Antwort

11

Bei einer gemeinsam genutzten Bibliothek muss IMPORTED_LOCATION auf die DLL verweisen, nicht auf die lib. Weitere Informationen finden Sie in der Dokumentation . Sie können auch die Eigenschaft IMPORTED_IMPLIB festlegen.

Übrigens, CMake hat auch ein Paket für Curl finden; vielleicht könnten Sie das verwenden?

    
Angew 13.02.2013, 10:12
quelle

Tags und Links