編譯平臺(tái)為64 位Ubuntu16.04
1.在終端中運(yùn)行QNX sdp安裝目錄下的環(huán)境變量文件
source? qnxsdp-env.sh
2.在protobuf目錄下索昂,運(yùn)行configure 配置編譯器為qnx編譯器蝶缀,目標(biāo)為arm。如果qnx運(yùn)行在x86或x86_64襟铭,可把ntoarmv7-gcc??ntoarmv7-g++
中的armv7替換為x86或x86_64忿族,編譯器路徑根據(jù)sdp安裝路徑找到。
./configure --prefix=/home/zoutianming/google/qnx/protobuf-c++/arm --host=arm --build=i686-pc-linux CC=/home/zoutianming/qnx700/host/linux/x86_64/usr/bin/ntoarmv7-gcc CXX=/home/zoutianming/qnx700/host/linux/x86_64/usr/bin/ntoarmv7-g++ --with-protoc=protoc --disable-shared
3.依次執(zhí)行make與make install命令
編譯libevent
1.在終端中運(yùn)行QNX sdp安裝目錄下的環(huán)境變量文件
source? qnxsdp-env.sh
2.在libevent目錄下蝌矛,運(yùn)行configure?
配置編譯器為qnx編譯器道批,目標(biāo)為arm。如果qnx運(yùn)行在x86或x86_64入撒,可把ntoarmv7-gcc??ntoarmv7-g++
中的armv7替換為x86或x86_64隆豹,編譯器路徑根據(jù)sdp安裝路徑找到。
qnx運(yùn)行在pc時(shí)茅逮,--host 設(shè)置為i686-pc-qnx 璃赡,運(yùn)行在arm時(shí)設(shè)置為arm-qnx??
--build設(shè)定編譯平臺(tái)
--prefix 指定最終include文件和庫(kù)文件的安裝路徑
CC設(shè)定編譯器??
--enable-shared=no --enable-static=yes 只編譯靜態(tài)文件
./configure --prefix=/home/zoutianming/opensource/temp --host=i686-pc-qnx --build=i686-pc-linux CC=/home/zoutianming/qnx700/host/linux/x86_64/usr/bin/ntoarmv7-gcc? --enable-shared=no --enable-static=yes
3.依次執(zhí)行make 與make install命令
在make時(shí),可能會(huì)報(bào)SA_RESTART undefined 錯(cuò)誤,原因時(shí)QNX中沒(méi)有此信號(hào)類(lèi)型献雅,可將其更改為如下:
#ifdef SA_RESTART //to fix the problem that QNX don't have SA_RESTART?
sa.sa_flags |= SA_RESTART;
?#endif
即無(wú)該信號(hào)時(shí)碉考,該代碼不參與編譯。