Ich versuche, in einer vorkompilierten freigegebenen Bibliotheksdatei namens libtest-lib.so zu verknüpfen. Dies ist, was ich am Ende meines CMakeLists.txt haben:Verknüpfen Sie eine gemeinsam genutzte Bibliothek mit CMake
link_directories("/projectspath/LinkTest/TestLib/app/build/intermediates/cmake/debug/obj/armeabi-v7a")
add_library(testlib libtest-lib.so)
target_link_libraries(testlib libtest-lib.so)
Wie oben, bekomme ich folgende Fehlermeldung:
CMake Error at CMakeLists.txt:49 (add_library):
Cannot find source file:
libtest-lib.so
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error: CMake can not determine linker language for target: testlib
Wenn ich die add_library Zeile aus kommentieren, erhalte ich die folgende:
CMake Error at CMakeLists.txt:51 (target_link_libraries):
Cannot specify link libraries for target "testlib" which is not built by this project.
Es scheint, dass Quelldateien (.c, CPP, usw.) sind absolut, wenn sie in einer Bibliothek Verknüpfung erforderlich. Aber wie verknüpfe ich eine .so-Datei? Die Dokumentation sagt folgendes über target_link_libraries():
Der Name muss im aktuellen Verzeichnis durch einen Befehl wie add_executable() oder add_library() erstellt worden sein.
Wenn ich add_library() mit add_executable() ersetzen, bekomme ich den gleichen Fehler. Was ist der richtige Weg, um eine .so-Datei in CMake zu verknüpfen?
Aber ich don habe keine Quellen. Der springende Punkt ist, eine vorkompilierte .so-Datei zu verknüpfen. –
? Sie möchten eine Bibliothek mit was verknüpfen? Nichts? – fedepad