0

我需要为我的项目设置静态链接。

当前状态是:

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 设置静态链接而不会出现此错误?或者也许我的根系统丢失了一些东西?

4

1 回答 1

2

当静态链接一些档案时,您需要自己指定其依赖项(在本例中为 libdl)。请注意,在链接器命令行上指定归档文件的顺序比链接共享对象更重要。

于 2012-10-22T10:32:37.860 回答