Я пытаюсь построить проект с CMake в режиме отладки. Проект содержит несколько библиотек stati c, динамическую библиотеку c и исполняемый файл. Исполняемый файл связывается с библиотекой Dynami c, а библиотека Dynami c связывается с несколькими внешними библиотеками Dynami c и с проектными библиотеками stati c. Одна из библиотек stati c зависит от CGAL.
Static A -> CGAL
Static B
Dynamic C -> Static A, Static B, Qt...
Executable -> Dynamic C
При компиляции в режиме Release все работает нормально, но при компиляции в режиме отладки я получаю
[100%] Linking CXX executable ../../bin/Executable
/usr/bin/ld: ../../lib/DynamicC.so: undefined reference to `CGAL::precondition_fail(char const*, char const*, int, char const*)'
collect2: error: ld returned 1 exit status
I проверил экспортированные символы для Dynami cC с nm -D DynamicC | grep CGAL::precondition_fail
, и он говорит, что его неопределенное значение
nm -C DynamicC.so | grep CGAL::precondition
U CGAL::precondition_fail(char const*, char const*, int, char const*)
Я использую самую последнюю версию CGAL только для заголовков. Я не понимаю, почему он жалуется на неопределенную ссылку в режиме отладки, но не в версии, или как это исправить. Есть идеи?