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 に答える