當前位置:首頁 » 編程軟體 » ubuntu伺服器如何交叉編譯

ubuntu伺服器如何交叉編譯

發布時間: 2023-06-11 04:43:45

❶ 怎麼在ubuntu系統下安詳交叉編譯

1.主機:ubuntu 10.10 gcc-4.4.5, kernel-2.6.35
sudo apt-get install bison flex build-essential patch libncurses5-dev
更新系統基本的編譯工具集
(用UBUNTU最大的好處就是可以 在線更新一些需要的系統包,APT-GET)
2 使用的是CROSSTOOL做的,需要的軟體包

第一個是工具鏈編譯腳本
第二個是2進制工具集
第三個是GCC-3.4.5的源代碼
第四個是依賴的linux標准函數庫
第五個是依賴的thread庫
第六個是LINUX代碼
(1).linux 源代碼其實是用了 在編譯的時候需要調用一些了linux庫文件和數據結構或者是頭文件,類似驅動開發依賴源代碼
(2).這個是可以指定的找到合適的就可以,不一定就是這個版本的
第七個是標准庫的頭文件了
3 UBUNTU10自帶的GCC版本是4.4.5 太高編譯會出現語法錯誤,所以安裝4.1的就好
sudo apt-get install gcc-4.1
sudo rm /usr/bin/gcc (刪除GCC,它只是個到gcc-4.3.2的軟鏈接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的軟鏈接)
(重新做個軟體連接指向4.1就好,這個可以在/usr/bin 下會出現:gcc-4.1 gcc-4.4)
4 修改 dash (ubuntu 默認的是 dash ,編譯指向的是bash)
ls -la /bin/sh
看到鏈接的是 dash ,則請運行以下命令
sudo dpkg-reconfigure dash
選擇 no 以刪除 dash
此處如果不改好的話,編譯時會出現錯
5 以上系統配置完成,下面開始修改腳本編譯(一下就是網上參考的了,很多的都是這么做的,謝謝那些真正看懂腳本的大牛們)

$tar –zxvf crosstool-0.43.tar.gz
$cd crosstool-0.43
在此目錄下可以看到有很多.sh腳本和.dat配置文件,每一個支持的處理器都有它所相應的腳本。http://www.linuxidc.com/假如選用demo- arm- softfloat.sh 就是建立目標為支持軟浮點的arm交叉編譯工具鏈。
3.修改demo-arm-softfloat.sh
$vim demo-arm-softfloat.sh
修改下面兩句
TARBALLS_DIR=$HOME/downloads //表示下載的源碼的存放目錄
RESULT_TOP=/opt/crosstools //表示生成的工具鏈的存放目錄
為:
TARBALLS_DIR=/home/linux/downloads(源碼存放目錄)
RESULT_TOP=/home/linux/crosstools(生成工具鏈目錄)
4.修改 gcc-3.4.5-glibc-2.3.6.dat
$ vim gcc-3.4.5-glibc-2.3.6.dat
修改內容為:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.5
GLIBC_DIR=glibc-2.3.6
LINUX_DIR=linux-2.6.26.5(內核版本)
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
5.修改glibc-2.3.6.tar.bz2包內的configure文件

case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[3-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
修改為
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.[1-2][0-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
還有3981行也有這樣的代碼 一個是ld,一個是ar
6.$ ./ demo-arm-softfloat.sh
注意啊UBUNTU許可權管理很嚴格,在執行腳本前,最好的就是把crosstool腳本所在的目錄和幾個源文件的目錄設置成 777
腳本運行的第一個是創建build的目錄,在腳本所在的目錄下,然後是解壓所有的源文件,檢查所有的依賴關系,進行編譯
大概需要很長時間吧,我是睡覺醒來看看 好了,,,,,,呵呵
即使如此的工作,幹了2個通宵搞定,當然邊干我還在三國殺,,,,,,,
當然成功後,有點小激動,熬了一宿,失眠了,,,,亢奮中

❷ Ubuntu14.04 用arm-linux-gcc 4.4.3 配置交叉編譯環境問題

安裝步驟

1、將壓縮包arm-linux-gcc-4.4.3.tar.gz存放在一個目錄下,這個目錄就是你等會解壓縮的目錄,以後這個目錄就不能隨便刪掉了

❸ 如何在ubuntu中進行交叉編譯

第一步,你需要下載QT源代碼(4.8的編譯比較容易),然後通過 ./configure (參數自己定,不懂看readme)接下來就是在QT CREATE裡面配置了,如下: 工具-->選項--->構建和運行 1. 編譯器: 點擊添加:

❹ ubuntu下怎麼安裝交叉編譯

1. 下載軟體包
從linaro的網站下載預編譯二進制包,
注意選擇的版本哦,我們要使用linux下的哦。選擇這個:
gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2
2. 解壓
解壓gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz 到 ~/arm-cross-toolchain/目錄下
3. 設置環境變數
~$ vi .bashrc

在最後添加如下 2 行:
PATH=$PATH:/home/lxl/arm-cross-toolchain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin
export PATH
請注意,第一行的$PATH後面是英文冒號,而冒號後面是你的cross-toolchain的可執行文件目錄(bin目錄)的絕對路徑。 這兩句的意思就是將cross-toolchain的可執行文件路徑加入系統環境變數PATH中。
4. 使環境變數 生效
~$ source .bashrc
5. 測試
~$ arm-linux-gnueabihf-gcc -v
報錯:arm-linux-gnueabihf-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

原因:64位的系統,缺少 lib32stdc++6這個包
解決:~$ sudo apt-get install lib32stdc++6

❺ ubuntu怎麼安裝arm交叉編譯器

1、下載文件:
安裝包:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
2、開始安裝(建議大家新建一個文件夾),然後將文件復制到新建的文件夾中

輸入命令: sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

安裝完成後,輸入ls命令,可以看到一個opt文件夾,

3.修改環境變數,把交叉編譯器的路徑加入到PATH:
利用tab鍵的補齊功能進入該路徑
輸入pwd命令,查看當前路徑的絕對路徑
/home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1/bin

❻ 小白求助,如何在ubuntu的QT creator下完成交叉編譯

你需要先安裝嵌入式版本的Qt
以下是我編譯Qt時的命令:樓主看著自行改
./configure -prefix /opt/QtEmbedded-4.7.3 -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -confirm-license -qt-mouse-tslib

然後把生成的Qt的qmake所在的目錄加入的Qt creater中,工具鏈就選你上面的那個arm-linux-g++

然後新建項目的時候就可以選擇 Embedded什麼來著

這樣就搞定了!

❼ Ubuntu下使用mingw-w64交叉編譯ffmpeg

網上大部分編譯windows版ffmpeg的教程都是基於msys+mingw的,完全運行在windows上。由於msys2的性能實在是太糟糕了,編譯速度太感人,因此決定研究Linux下使用mingw-w64交叉編譯

先是安裝ubuntu版的mingw-w64
sudo apt install mingw-w64

然後在configure ffmpeg的時候,在正常的配置項之後加上。
--arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32-

上面是32位庫編譯的配置,64位的如下
--arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32-

而且最好使用動態庫,靜態庫還需要鏈接一大堆mingw的庫實現,而且還可能鏈接失敗。但這樣編譯出來的動態庫,還需要依賴 libgcc_s_sjlj-1.dll。如果要移除這個依賴,configure的時候還要加上 --extra-ldflags='-static-libgcc'

熱點內容
127小時ftp 發布:2025-02-11 09:47:10 瀏覽:851
安卓怎麼看蘋果手機的行駛軌跡 發布:2025-02-11 09:26:19 瀏覽:884
h板電影種子ftp 發布:2025-02-11 09:06:10 瀏覽:738
c語言數據類型定義 發布:2025-02-11 09:00:38 瀏覽:237
一個小時如何選擇伺服器 發布:2025-02-11 08:58:14 瀏覽:442
網易我的世界伺服器推薦國服 發布:2025-02-11 08:56:34 瀏覽:241
電視父母鎖屏密碼應該會是什麼 發布:2025-02-11 08:36:42 瀏覽:892
梅花適合用哪些植物進行配置 發布:2025-02-11 08:30:54 瀏覽:252
安卓手機如何像蘋果一樣彈窗 發布:2025-02-11 08:26:33 瀏覽:912
壓縮文件掃碼 發布:2025-02-11 08:20:55 瀏覽:258