Как создать оболочку общей библиотеки для статической библиотеки (без использования исходных файлов) с помощью 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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