CMake-Verknüpfung für gemeinsam genutzte Bibliothek unter Windows: Fehler beim Nichtfinden der .lib-Datei

Ich habe eine Bibliotheksdefinition in CMake, die eine gemeinsam genutzte Bibliothek aus einer kleinen Gruppe von Dateien erstellt, und ich habe sie sowohl unter Linux als auch unter Windows problemlos kompilieren lassen.

Ich habe jedoch auch eine andere Bibliothek, die mit der gemeinsam genutzten Bibliothek verknüpft ist und unter Linux einwandfrei funktioniert. Unter Windows erhalte ich jedoch eine entsprechende Meldung oder die Meldung "Fehler kann Release / nnet.lib nicht finden" während der Verbindungszeit . Gibt es etwas Besonderes, das ich tun muss, um dies auf Windows zu verlinken?

Bearbeiten, Beispiel:

Gemeinsame Hauptbibliothek (Dateinamen geändert, um die Unschuldigen zu schützen):

ADD_LIBRARY(nnet SHARED
  src/nnet/file_1.cc src/nnet/file_3.cc  
  src/nnet/file_2.cc src/nnet/file_4.cc)

Und dann baue ich ein Python-Modul, das in der Bibliothek verlinkt:

# Build python module
ADD_LIBRARY            (other_lib SHARED ${CMAKE_SOURCE_DIR}/src/boost/boost_main.cc)
TARGET_LINK_LIBRARIES  (other_lib nnet   ${PYTHON_LIBRARIES})

Der Rest ist nur Boilerplate (z. B. Ändern der Modulerweiterung in .pyd unter Windows, Auffinden von Python-Bibliotheken / -Headern usw.). Und dann erhalte ich beim Erstellen von VS 2008 Folgendes:

schwerwiegender Fehler LNK1181: Eingabedatei 'Release \ nnet.lib' kann nicht geöffnet werden

beim Erstellen von other_lib. Beachten Sie, dass beim Erstellen von nnet keine Fehler ausgegeben werden.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage