當前位置:首頁 » 編程軟體 » 樹莓派gcc編譯x86二進制

樹莓派gcc編譯x86二進制

發布時間: 2022-08-18 16:35:12

❶ x86-64上怎麼安裝GCC,編譯32位和64位程序,謝謝。

如果大多數類unix系統應當是自帶gcc的 編譯程序時使用不同的參數就可以選擇編譯成64位或者32位. 如果要求性能,推薦使用icc

linux gcc安裝 編譯gcc

編譯gcc 時 不識別的參數--host-i386-redhat-linux,你把這個參數去掉試一下看。
也可以在原光碟裡面找gcc的rpm包直接安裝,不用編譯那麼麻煩

❸ 64位linux下的GCC如何編譯出一個32位可執行程序

理論上安裝支持環境,之後 64 位的 gcc 編譯成 32 位程序,就加 -m32 參數即可。

當然還一個辦法是裝個 32 位的 gcc 。

另外,交叉編譯也適用於 x86 架構。

不過這么編譯經常會出現各種問題,所以編譯 32 位的程序,最好還是用 32 位系統。

不一定重裝,用 chroot 和 setarch 命令配合即可弄出一個 32 位的子系統。

❹ x86 平台編譯的二進制包是否都不能運行在樹莓派中

firmware:樹莓派的交叉編譯好的二進制內核、模塊、庫、bootloader
linux:內核源碼
tools:編譯內核和其他源碼所需的工具——交叉編譯器等
我們只需要以上三個文件即可,下面的工程可以了解一下

documentation:樹莓派離線幫助文檔,教你如何使用、部署樹莓派(樹莓派官方使用教程)
userland:arm端用戶空間的一些應用庫的源碼——vc視頻硬浮點、EGL、mmal、openVG等
hats:Hardware Attached on Top,樹莓派 B+型板子的擴展板資料
maynard:一個gtk寫成的桌面環境
scratch:一個簡易、可視化編程環境
noobs:一個樹莓派鏡像管理工具,他可以讓你在一個樹莓派上部署多個鏡像
weston:一個應用程序
target_fs:樹莓派最小文件系統,使用busybox製作
quake3:雷神之錘3有線開發源碼firmwareb
2)下載方法:
a、網頁直接下載:

點到所需要下載的工程,左上角選版本,右方有一個download ZIP按鈕可直接下載(筆者下載完成後,在linux中解壓提示出錯,windows又非常慢切內核建議不要在windows環境解壓,所以筆者不建議使用這種辦法)

b、使用git下載
$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git

會得到三個文件夾
firmware linux tools

2、編譯、提取內核及其模塊

1)獲得內核配置文件
在運行的樹莓派中運行:
$ls /proc/
可看到一個叫config.gz的文件,他是當前的樹莓派配置選項記錄文件,我們將他拷出,放入我們的內核源碼目錄樹下

$cp /proc/config /home/pi
我們這里使用前面交過的samba拷出並拷入內核源碼目錄下,不熟悉的人可參考前面文章

在linux內核源碼下執行:
$zcat config.gz > .config

2)配置、編譯內核
a、修改內核源碼makefile ARCH類型和編譯器路徑
$vi Makefile +195
找到以上類似代碼,改為如圖所示

b、查看、修改配置選項
$make menuconfig
可出現以下界面

如果不做修改,直接選中exit即可(注意使用鍵盤操作)

c、編譯內核鏡像
$make
在arch/arm/boot目錄下可以看到一個叫zImage的文件,就是我們新的內核

但是樹莓派需要另外一種格式的鏡像,需要進行處理一下,執行以下命令
$cd tools/mkimage

$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
即可在當前文件夾下看到一個叫:kernel.img的文件,就是我們需要的新內核了

d、提取moles
上一步其實不但編譯出來了內核的源碼,一些模塊文件也編譯出來了,這里我們提取一下
$cd raspberrypi_src
$mkdir moles
$cd linux
$ make moles_install INSTALL_MOD_PATH=../moles

即可在moles得到我們需要的模塊文件

2、升級RPi的kernel、Firmware、lib
將SD卡拔下插在電腦上(可使用讀卡器)
1)升級內核
將新編好的內核拷入SD卡,改名為:kernel_new.img
打開boot目錄下
找到config.txt文件,加入:kernel=kernel_new.img這一行

2)升級boot
將firmware/boot/目錄下 以下文件拷入SD卡boot目錄:fbootcode.bin fixup.dat fixup_cd.dat start.elf

3)更新vc庫及內核moles
將第3步d步中編譯出來的moles/lib/moles拷入樹莓派文件系統/lib下

❺ 樹莓派用gcc編譯出來的代碼(只用ANSI C)能直接給stm8/stm32用嗎

既然都已經編譯出來了,那就不是代碼而是可執行程序了。樹莓派的處理器BCM2835(核心為ARM11)與STM8/STM32明顯不同,底層硬體、外設均不兼容,所以樹莓派的可執行程序是不能直接給STM8/STM32使用的。但樹莓派的應用層代碼(不涉及到底層硬體資源的代碼)可以移植到STM8/STM32的工程中編譯後給STM8/STM32使用。

❻ linux 用GCC編譯器編譯程序的問題,急

1,如果在不同系統架構下(x86, powerpc)產生的二進制文件不一樣

2,GCC是一樣的,但是系統更新過嗎? 不同的程序庫(如升級更新了libc6),編譯結果也會不同

3,如果該工程使用到了一些時間常量等(如gnome-about程序包含一個編譯時間的常量),在每次編譯時也會產生不同結果

4,GCC的問題,如果你的GCC是自己編譯的,編譯時又沒有選擇編譯自檢,就可能得到一個有問題的GCC,它的編譯結果是不可靠的

❼ C語言如何編譯成可以直接在CPU運行的二進制碼

路過。。。話說你要二進制文件幹啥呢,我的大學老師告訴我,懂二進制的全世界就只有那麼幾個

❽ 64位linux下面的GCC如何編譯出一個32位可執行程序

理論上安裝支持環境,之後 64 位的 gcc 編譯成 32 位程序,就加 -m32 參數即可。

當然還一個辦法是裝個 32 位的 gcc 。

另外,交叉編譯也適用於 x86 架構。

不過這么編譯經常會出現各種問題,所以編譯 32 位的程序,最好還是用 32 位系統。

不一定重裝,用 chroot 和 setarch 命令配合即可弄出一個 32 位的子系統。

❾ 如何用gcc編譯包含大數組的程序,x86

static char buff[3G];是不行的
char buff[3G];就能編譯通過了

此時gcc不可以用-static選項, 要加-O2
5分鍾後運行看看

熱點內容
安卓讀寫許可權在哪裡 發布:2025-02-07 03:29:21 瀏覽:36
釘郵怎麼找回密碼 發布:2025-02-07 03:16:40 瀏覽:81
比特幣錢包源碼 發布:2025-02-07 03:16:39 瀏覽:101
飢荒如何轉移伺服器 發布:2025-02-07 03:14:42 瀏覽:4
怎麼才能知道電視是不是安卓系統 發布:2025-02-07 03:04:23 瀏覽:817
銀行更改密碼紅色預警是什麼意思 發布:2025-02-07 02:54:22 瀏覽:552
androiddomain 發布:2025-02-07 02:46:04 瀏覽:844
埠掃描源碼 發布:2025-02-07 02:31:01 瀏覽:471
androidurl獲取圖片 發布:2025-02-07 02:22:11 瀏覽:483
調用上傳 發布:2025-02-07 02:19:53 瀏覽:86