Как создать оболочку общей библиотеки для статической библиотеки (без использования исходных файлов) с помощью CMake?C++

Программы на C++. Форум разработчиков
Anonymous
Как создать оболочку общей библиотеки для статической библиотеки (без использования исходных файлов) с помощью CMake?

Сообщение Anonymous »

Я хотел бы создать liboo.so из libfoo.a с помощью CMake.
Пока

Код: Выделить всё

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)
где main вызывает функции из libfoo.so. Но провоцирует ошибку:

Код: Выделить всё

main.cpp:(.text+0x26): undefined reference to `Foo::Foo()'
main.cpp:(.text+0x50): undefined reference to `Foo::sayHello(std::basic_string)'
Я предполагаю, что символы не добавляются, поскольку пустой.cpp их не использует, но я не уверен, что это проблема и как ее решить.
Я видел CMake: как создать единую общую библиотеку из всех статических библиотек подпроектов? , но я бы предпочел пока использовать более ранние версии cmake.
Я также видел, как связать статическую библиотеку с динамической библиотекой в ​​gcc, но не могу заставить ее работать и все равно использую CMake.

Подробнее здесь: https://stackoverflow.com/questions/159 ... sing-sourc

Вернуться в «C++»