LINUX.ORG.RU

Не вскомпиливается модуль в динамическу библиотеку

 


0

1

Собственно, вот компилябельный пример http://rghost.ru/40830636.

В получаемой либе отсутствует TestB. Как его вкомпилить?

★★★★

Последнее исправление: panter_dsd (всего исправлений: 1)

Ответ на: комментарий от enep

Собирается только статическая либа. TestB в ней так же нет.

panter_dsd ★★★★
() автор топика

Копай в сторону опций линкера - в команде линковки библиотека есть и cmake тут не при чём. Более того, если в testa.cpp создать экземпляр TestB, символы из sub_module будут прилинкованы.

Так что либо разбирайся как заставить линкер прилинковать ненужный код, либо экспортируй из sub_module не статическую либу, а список исходников и его добавляй к исходникам верхнего уровня.

slovazap ★★★★★
()

Так структура же такая у CMakeLists.txt, что testA и testB — две независимые библиотеки. А вот так уже все в кучу собирается:

project(test)
add_library(test SHARED testa.cpp sub_module/testb.cpp)

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.