以下是關于如何在ubuntu下安裝libgpiod庫的兩種安裝方式以及遇到ubuntu存在多個工具鏈導致編譯失敗的解決方法。
如果想要自由選擇使用不同版本的libgpiod,可以選擇手動編譯安裝方式,系統安裝默認1.6.3版本(ubuntu22.04)。
手動編譯安裝
1、在github上下載要安裝的對應版本的庫文件的包
2、在ubuntu下解壓并進入libgpiod-2.2.x的路徑下
3、運行如下命令安裝好配置工具
sudo apt install autoconf automake libtool pkg-config perl autotools-dev //安裝工具鏈依賴
sudo apt-get install autoconf-archive //安裝拓展宏集合
4、運行libgpiod-2.2.x路徑下的 autogen.sh
./autogen.sh
如果出現以下錯誤:
錯誤提示顯示找不到需要的依賴,那可能是因為你的unbuntu可能安裝了多個編譯工具鏈,通過sudo apt-get install安裝的autoconf、automake等工具是x86_64系統版本,安裝在usr/bin/等系統路徑下,但你在PATH中優先設置交叉編譯工具鏈的路徑,例如我使用的是aarch64的工具鏈,由于之前在PATH中優先設置了交叉編譯工具的路徑:
而工具鏈可能自帶了一個aarch64版本的autoreconf,運行./autogen.sh的時候libgpiod-2.2.x會嘗試調用工具鏈內部的Perl模塊,但模塊路徑不完整從而導致錯誤。
對此,可以使用以下解決方法:
在運行./autogen.sh前,臨時將系統路徑放在前面:
export PATH=/usr/bin:/usr/sbin:$PATH
./autogen.sh
編譯完后再恢復工具鏈路徑:
export PATH=/opt/aarch64-rk3568-linux-gnu/bin:$PATH
編譯成功后的包長這樣:
接下來根據個人需求選擇安裝路徑,這里我為了避免污染系統,就自定義了一個路徑存放,如果僅用于本地開發測試的也可以這樣做,全局安裝則需要安裝到/usr/local目錄下:
./configure --prefix=安裝路徑
make -j4
make install
安裝后包長這樣:
后續在工程中如果需要使用到libgpiod的相關函數接口,就直接把這個包復制進工程里面就可以了。
系統安裝
sudo apt update //更新軟件包列表
sudo apt install libgpiod //安裝系統倉庫中預編譯好的 libgpiod 庫及其依賴(如動態庫、工具等)