protobuf c++ arm 版依賴於linux版本,需要使用交叉編譯環境進行編譯,這裡使用的是 arm-none-linux-gnueabi-c++
將其移動到linux目錄下
解壓
tar -jxvf arm-
2014.05-29
-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
修改環境變數
vim /etc/profile
新增解壓後檔案所在路徑(… 代表路徑,替換為自己的)
export path=$path:..
./arm/bin
儲存執行
source /etc/profile
arm-none-linux-gnueabi-c++
-v
如果返回如下圖所示,則成功
-v提示找不到路徑之類的錯誤,可能是有與32位和64位造成
需要安裝相容庫
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-
1.0
參考protobuf c++ 版編譯安裝和簡單使用
安裝protobuf arm版本需要先安裝linux版本,用到其中的生成檔案
.
/configure --host=arm-linux --prefix=
/usr/local/protobuf_arm --with-protoc=
/usr/local/protobuf/bin/protoc cc=arm-none-linux-gnueabi-gcc cxx=arm-none-linux-gnueabi-g++
這一步主要目的是用來生成makefile檔案
編譯:make
測試:make check
安裝 :make install
新增如下環境變數
vim /etc/profile
export ld_library_path=$ld_library_path:
/usr/local/protobuf_arm/lib
export library_path=$library_path:
/usr/local/protobuf_arm/lib
export path=$path:
/usr/local/protobuf_arm/bin
儲存執行
source /etc/profile
arm-none-linux-gnueabi-c++
-std=c++
11 test.pb.cc test.cpp -o test `pkg-config --cflags --libs protobuf-lite`
上述鏈結的protobuf-lite庫,有些高階用法進行了刪減,主要是減小鏈結庫煩人體積,對應的.proto
檔案新增option optimize_for = lite_runtime;
也可以採用protobuf庫,包含完整用法,不需要加option optimize_for
選項
在liunx已無法直接執行,需要移動到arm端執行
在執行前需要先將依賴的庫推入arm裝置
adb shell mount -o rw,remount /
adb push protobuf-lite.so.
20/usr/lib/protobuf-lite.so.
20
我這裡根據錯誤提示推入的是protobuf-lite.so.20
然後即可執行
.
/tets
Linux編譯安裝 簡版
linux編譯安裝gcc 5.1.0 linux下編寫c c 程式自然缺不了乙個優秀的編譯器,linux下比較常見的自然是gcc了。2015年4月下旬gcc也出到了5.1.0版本,對於c 11 14也有了更好的支援了。因為最近在學習openmp,gcc 5.1.0支援openmp4.0最新版本。所以...
ios版boost庫編譯
bin bash 請自行修改路徑,cd到boost解壓後的目錄下 dir dirname 0 cd dir public libs boost 1 56 0 如果庫檔案已存在,直接退出 if e stage lib libboost date time.a then echo libraries e...
objectarx編譯Debug版arx遇到的問題
錯誤一鏈結錯誤 1 pietdoginte ce s.lib msg.obj error lnk2001 無法解析的外部符號 class atl ctracecategory atl atltraceexception atltraceexception atl 3vctracecategory 1...