Как установить статическое связывание CMAKE (неопределенная ссылка на `dlopen ‘)?

Мне нужно установить статические ссылки для моего проекта.

Текущее состояние:

target_link_libraries(armd
${SQLITE3_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
rt)

if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "-O0 -Wall -fmessage-length=0")

не работает на устройстве, мне нужно связать статически (добавить -static для устройства), но когда я делаю

set(CMAKE_CXX_FLAGS "-O0 -Wall -fmessage-length=0 -static")

Я собираюсь:

/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libsqlite3.a(sqlite3.o): In function `unixDlOpen':
sqlite3.c:(.text+0x3e5d4): undefined reference to `dlopen'

Как установить статическое связывание для sqlite без этой ошибки? Или может моя корневая система чего-то не хватает?

0

Решение

При статическом связывании некоторых архивов вам нужно самим определять его зависимости (в данном случае libdl). Помните, что порядок, в котором вы указываете архивные файлы в командной строке компоновщика, важнее, чем для связывания общих объектов.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]