簡體   English   中英

RPi 交叉編譯:如何鏈接動態庫

[英]RPi Cross Compiling: how to link dynamic libraries

我嘗試從 x86_64 windows 機器交叉編譯到運行 Raspberry OS lite 的 Raspberry Pi 4B,並且我已經設法使用我的工具鏈運行“hello world”。 現在,我想創建包含動態庫的更復雜的程序,但我未能創建正確鏈接動態庫的 makefile。 主機和目標設備上都提供所需的所有庫。 當我在主機上鏈接 makefile 時:

LIBRARIES:= C:/SysGCC/raspberry64/aarch64-linux-gnu/sysroot/lib/aarch64-linux-gnu/libdl.so.2

該程序編譯正確,但在目標上執行時出現錯誤:“加載共享庫時出錯:沒有這樣的文件或目錄”。 這很有道理。

但是,當我鏈接目標庫時:

LIBRARIES:= /opt/Vimba_5_1/VimbaC/DynamicLib/arm_64bit/libVimbaC.so /usr/lib/aarch64-linux-gnulibdl.so.2

編譯過程中出現“No such file or directory”錯誤。

我的問題是:如何正確鏈接動態庫?

提前致謝!

咱們試試吧

在主機(Windows)上:

add C:/SysGCC/raspberry64/aarch64-linux-gnu/sysroot/lib/aarch64-linux-gnu/ to your environment variable

My Computer>Properties>Advanced>Environment Variables>System Variables>Path>Edit>Variable Value

在目標機器上(linux)

   env LD_LIBRARY_PATH=/opt/Vimba_5_1/VimbaC/DynamicLib/arm_64bit/ ./your_program

如果有效 -> 您可以使用 ldconfig 將路徑添加到庫搜索路徑https://blog.andrewbeacock.com/2007/10/how-to-add-shared-libraries-to-linuxs.html

暫無
暫無

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

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