『壹』 如何實現protobuf在XCODE上armv7/armv7s/i386的交叉編譯 / 藍訊
步驟一:部署protoc.exe
1)sudo su ---進入管理模式
//以下操作切換至protobuf文件夾下
2)。/configure
3)make
4)make check
5)make install
此時可以查看protobuf文件夾下面的makefile文件,可以查看-build表示的本機環境以及-host表示的編譯庫的運行環境
我本地的-build=x86_64-apple-darwin12.3.0
-host=x86_64-apple-darwin12.3.0
(這兩個參數在後續配置腳本需要用到,與後面腳步的i686-apple-darwin12.3.0以及arm-apple-darwin12.3.0後綴「arm-apple-darwin12.3.0」保持一致)
6)make distclean清理已生成的makefile,為交叉編譯配置新makefile做准備
步驟二:配置交叉編譯
1)執行腳本ios-build.sh,腳本內容如下:
configure_for_platform() {
export PLATFORM=$1
#export PLATFORM=iPhoneOS
echo 「Platform is ${PLATFORM}」
if [ 「$PLATFORM」 == 「iPhoneSimulator」 ]; then
export ARCHITECTURE=i386
export ARCH=i686-apple-darwin12.3.0
fi
if [ 「$PLATFORM」 == 「iPhoneOS」 ]; then
export ARCHITECTURE=$2
export ARCH=arm-apple-darwin12.3.0
fi
export ARCH_PREFIX=$ARCH-
export SDKVER=「6.1」
#sdk版本號必須正確
export
DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer
export SDKROOT=「$DEVROOT/SDKs/${PLATFORM}$SDKVER.sdk」
export
PKG_CONFIG_PATH=「$SDKROOT/usr/lib/pkgconfig:$DEVROOT/usr/lib/pkgconfig」
export AS=「$DEVROOT/usr/bin/as」
export ASCPP=「$DEVROOT/usr/bin/as」
export AR=「$DEVROOT/usr/bin/ar」
export RANLIB=「$DEVROOT/usr/bin/ranlib」
#export CPP=「$DEVROOT/usr/bin/c++」
#export CXXCPP=「$DEVROOT/usr/bin/c++」
export CC=「$DEVROOT/usr/bin/gcc」
export CXX=「$DEVROOT/usr/bin/g++」
export LD=「$DEVROOT/usr/bin/ld」
export STRIP=「$DEVROOT/usr/bin/strip」
export LIBRARY_PATH=「$SDKROOT/usr/lib」
export CPPFLAGS=「」
『貳』 ubuntu的編譯環境是x86系統還是arm交叉編譯
在一個平台上生成另外一個平台上的可執行代碼才叫做交叉編譯。如果你安裝的編譯環境僅僅是為了生成本系統上的可執行代碼,那就不是交叉編譯環境,至於是不是X86,要看你的Ubuntu到底是不是X86平台。
『叄』 請教:ARM交叉編譯中不能編譯二進制工具
用交叉編譯器在x86上編譯通過了,那麼在arm上你得要共享,然後再運行可執行文件,試試可不可以。
『肆』 如何使代碼既支持x86又支持arm
代碼用java寫。Java代碼編譯後是用Java虛擬機運行,因此CPU架構並不是什麼大問題,能運行java虛擬機即可。典型的例子就是安卓,既可以在arm上運行又可以在x86上運行。
『伍』 為什麼x86和arm的架構不同,但是都能裝linux呢,他們的編譯時如何實現的。
rm架構和x86架構區別:
一、性能:
X86結構的電腦無論如何都比ARM結構的系統在性能方面要快得多、強得多。X86的CPU隨便就是1G以上、雙核、四核大行其道,通常使用45nm(甚至更高級)製程的工藝進行生產;
而ARM方面:CPU通常是幾百兆,最近才出現1G左右的CPU,製程通常使用不到65nm製程的工藝,可以說在性能和生產工藝方面ARM根本不是X86結構系統的對手。
但ARM的優勢不在於性能強大而在於效率,ARM採用RISC流水線指令集,在完成綜合性工作方面根本就處於劣勢,而在一些任務相對固定的應用場合其優勢就能發揮得淋漓盡致。
二、擴展能力:
X86結構的電腦採用「橋」的方式與擴展設備(如:硬碟、內存等)進行連接,而且x86結構的電腦出現了近30年,其配套擴展的設備種類多、價格也比較便宜,所以x86結構的電腦能很容易進行性能擴展,如增加內存、硬碟等。
ARM結構的電腦是通過專用的數據介面使CPU與數據存儲設備進行連接,所以ARM的存儲、內存等性能擴展難以進行(一般在產品設計時已經定好其內存及數據存儲的容量),所以採用ARM結構的系統,一般不考慮擴展。基本奉行「夠用就好」的原則。
三實現編譯:
因為linux是系統,他支持現在大多數的結構體系。而要使他移植到相應的不同的硬體平台上時,需要對內核源碼進行相對應的交叉編譯處理,然後才能進行燒寫運行,因為都有驅動只要那個系統有對應平台的驅動就可以。
(5)基於arm交叉編譯x86擴展閱讀:
Linux常用命令
1、pwd命令該命令的英文解釋為print working directory(列印工作目錄)。
2、輸入pwd命令,Linux會輸出當前目錄。
3、cd命令cd命令用來改變所在目錄。
4、cd / 轉到根目錄中
5、cd ~ 轉到/home/user用戶目錄下
6、cd /usr 轉到根目錄下的usr目錄中-------------絕對路徑
7、cd test 轉到當前目錄下的test子目錄中-------相對路徑
8、cat命令可以用來合並文件,也可以用來在屏幕上顯示整個文件的內容。
9、cat snow.txt 該命令顯示文件snow.txt的內容,ctrl+D退出cat。
『陸』 為什麼需要編譯安裝x86和arm版的qt
問題太籠統了吧,arm的qt是交叉編譯環境,針對arm的板子編譯程序,x86是針對pc編譯程序,目標程序運行環境不一樣,肯定版本也不一樣啊,同時安裝可以用x86版的程序測試代碼,再用arm的編譯出目標程序
『柒』 linux C 中 腳本編寫時,ARM架構、x86架構編譯工具如何選擇
剛學 Linux 建議還是先補習一下基礎知識。之後自動手動編譯一個自己的交叉編譯器。
之後你就明白其中的原委了。
我估計是你安裝的有問題,交叉編譯器的 bin 目錄沒有放進 PATH 變數
『捌』 能在x86上編譯運行在arm的交叉編譯器嗎
,在進行ARM-linux嵌入式開發時必須在PC機(x86結構)上編譯出能夠運行在ARM上的程序,然後再將程序下載到ARM中來運行.這就用到了交叉編譯器...
『玖』 jdk nginx. redis 在arm和x86要分別編譯
一、注意openssl和pcre只需要把源碼解壓縮,不需要單獨交叉編譯!
開始的時候不知道,傻傻的把這兩個庫弄半天把它們編譯過去了。誰知道nginx的--with-pcre和--with-openssl選項,指定的是這兩個庫源代碼的路徑,並非安裝路徑!nginx的編譯系統只會從/usr、/usr/local等少數幾個目錄查找是否有預編譯的pcre、zlib、openssl等庫。對於交叉編譯,直接把交叉編譯後的pcre等安裝在/usr、/usr/local顯然不合適,因此需要使用--with-pcre和--with-openssl指定源代碼的位置
二、交叉編譯nginx
在x64 linux上面編譯非常簡單的nginx,沒想到在交叉編譯的時候巨多坑。下面一個configure是編譯成功的配置
進入/usr/local/src目錄,創建nginx文件夾。入剛創建的nginx目錄,下載nginx的tar包,解壓,進入解壓生成的目錄,進行配置(後面有補充,建議通讀一遍)編譯安裝查找安裝路徑,在執行make編譯時,可以添加要編譯的參數,已安裝完成,比如我現在要新增 http_stub_status_mole 模塊參數,那麼我只要把該參數添加進去然後重新編譯即可,需要注意的是原先編譯過的參數也要加進來。
進入nginx的安裝目錄,因為我安裝的時候沒有添加任何參數,所以這里我只需要執行
我這里只需要這一個模塊,如果你安裝的nginx還使用其他的模塊,記得在上面的編譯命令中加上。
另外,這里只能 make 千萬別 make install,否則就覆蓋安裝了。
make完成後,在源碼目錄下會有一個objs目錄,objs目錄下就多了個nginx,這個就是新版本的程序了;
然後將objs目錄下的nginx替換之前已經安裝過的nginx(建議將舊的nginx程序做下備份)
,
『拾』 如何在arm linux上運行.net的x86程序
1.需要交叉編譯後,將編譯出的文件放到板子上執行。
2.交叉編譯器arm-linux-gcc或者arm-linux-g++,過程比較復雜,一時是說不清楚的。
3.建議多看些資料,了解一下原理
4.也可以去請教一下arm方面的專家