簡體   English   中英

在交叉編譯中找不到動態鏈接的庫

[英]Dynamically linked library cannot be found in cross-compilation

我一直在嘗試用二進制文件動態鏈接共享對象。 一切正常,直到我嘗試運行它,這給了我:

/tmp/test: error while loading shared libraries: libxl.so: cannot open shared object file: No such file or directory

另外ldd表示找不到該文件。 當然,有問題的庫位於默認位置(/ lib / arm-linux / gnueabihf)。 復制庫之后,我也運行了ldconfig。

我檢查了以下內容:

  • 設置rpath以包括位置
  • 將LD_LIBRARY_PATH設置為正確的位置
  • 創建了一個具有相同名稱的虛擬共享對象-已成功找到(當然沒有必要的符號)

該庫的創建方式為:

ELF 32-bit LSB shared object, ARM, EABI4 version 1 (SYSV), dynamically linked

而測試二進制文件是:

ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked

EABI版本能否在運行中引起此類問題? 還有什么我可以嘗試使其運行的嗎?

庫路徑必須是主機中的庫位置,而不是目標計算機中的位置。 似乎“ / lib / arm-linux / gnueabihf”是目標計算機中庫的位置。

在您的工具鏈sysroot中找到libxl.so的正確路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM