Wie erstelle ich einen freigegebenen Bibliothekswrapper für eine statische Bibliothek (ohne Quelldateien) mit CMAKE?
Posted: 02 Feb 2025, 08:50
Ich möchte einen libboo.so aus einem libfoo.a verwenden. />
wobei Hauptaufrufe von libfoo.so funktionieren. Provoziert aber den Fehler: < /p>
Ich schätze, die Symbole werden nicht hinzugefügt, da cpp sie nicht verwendet, aber ich bin mir nicht sicher, ob dies das Problem ist und wie man es überwindet. < /p>
Ich habe CMake gesehen: Wie erstellen Sie eine einzelne gemeinsame Bibliothek aus allen statischen Bibliotheken von Subprojekten? , aber ich würde es vorerst lieber an niedrigere Versionen von CMake halten. < /p>
Ich habe auch gesehen Arbeit und ich benutze CMake sowieso.
Code: Select all
include_directories(third-party/includes)
find_library(${thirdparty_LIBRARIES} foo PATHS third-party/lib)
add_library(boo SHARED empty.cpp)
target_link_libraries(boo ${thirdparty_LIBRARIES})
add_executable(runBoo main.cpp)
target_link_libraries(runBoo boo)
Code: Select all
main.cpp:(.text+0x26): undefined reference to `Foo::Foo()'
main.cpp:(.text+0x50): undefined reference to `Foo::sayHello(std::basic_string)'
Ich habe CMake gesehen: Wie erstellen Sie eine einzelne gemeinsame Bibliothek aus allen statischen Bibliotheken von Subprojekten? , aber ich würde es vorerst lieber an niedrigere Versionen von CMake halten. < /p>
Ich habe auch gesehen Arbeit und ich benutze CMake sowieso.