1.作業系統:ubuntu
2.安裝交叉編譯器:
用c++寫**要用c++的交叉編譯器編譯,使用apt安裝arm-linux-gnueabihf-g++,輸入命令:
sudo apt install arm-linux-gnueabihf-g++
3.修改makefile檔案:
將原來編譯c語言原始檔的arm-linux-gnueabihf-gcc
替換成arm-linux-gnueabihf-g++
,其他的不需要更改。
4.編譯c++原始檔:
使用make
命令編譯
5.分享乙個我寫的makefile(c++版):感覺寫的不是很好,有點複雜。用法是:將源**(.cpp )以及啟動**(.s)放到src資料夾;將.**件放到inc資料夾,執行make
命令後,自動建立build資料夾,並將目標檔案(.o)以及生成的二進位制可執行檔案放入build資料夾中。
cross_compile ?= arm-linux-gnueabihf-
cc := $(cross_compile)g++
ld := $(cross_compile)ld
objcopy := $(cross_compile)objcopy
objdump := $(cross_compile)objdump
build_dir := build
src_dir := src
inc_dir := inc
target := led
#src/main.c--->src/main.o--->build/main.o
obj_cpp := $(patsubst %, $(build_dir)/%, $(notdir $(patsubst %.cpp, %.o, $(wildcard $(src_dir)/*.cpp))))
#src/start.s--->src/start.o--->build/start.o
obj_s := $(patsubst %, $(build_dir)/%, $(notdir $(patsubst %.s, %.o, $(wildcard $(src_dir)/*.s))))
objs := $(patsubst %, $(build_dir)/%, $(notdir $(obj_cpp) $(obj_s)))
cpp_file := $(wildcard $(src_dir)/*.cpp)
s_file := $(wildcard $(src_dir)/*.s)
$(build_dir)/$(target).bin:$(objs)
$(ld) -ttext 0x87800000 -o $(build_dir)/$(target).elf $^
$(objcopy) -o binary -s $(build_dir)/$(target).elf $@
$(objdump) -d -m arm $(build_dir)/$(target).elf > $(build_dir)/$(target).dis
$(obj_cpp):$(cpp_file)
$(cc) -nostdlib -i $(inc_dir) -c -o $@ $<
$(obj_s):$(s_file)
$(cc) -nostdlib -i $(inc_dir) -c -o $@ $<
clean:
rm -rf build load.imx
print:
echo $(obj_cpp)
$(obj_cpp):|$(build_dir)
$(obj_s):|$(build_dir)
$(build_dir):
mkdir $(build_dir)
6.makefile解釋:
①第11行可以修改target變數來改變最終的二進位制檔案的命名;
②第37行的print是為了除錯makefile,執行命令make print
即可執行print下面的**
ubuntu下安裝交叉編譯環境
操作環境 ubuntukylin 13.0.4 gcc 版本 3.4.1 開啟終端 進入超級使用者模式 進入到gcc 當前的目錄下 解壓縮 tar jxvd home xuxiong toolchain cross 3.4.1.tar.bz2 c 在 usr local 下可以看到 arm 資料夾 ...
Ubuntu下安裝交叉編譯環境
最近一直在弄linux系統,由於需要進行嵌入式操作,所以必須要安裝交叉編譯環境。下面是我安裝交叉編譯環境的過程,系統用的是ubuntu,對初學者應該有些幫助 安裝交叉編譯環境 ky.i9 u0 1.安裝標準的c開發環境,由於ubuntu安裝預設是不安裝的,所以需要先安裝一下 ic開發網 l lo x...
Ubuntu下安裝ARM交叉編譯工具
在ubuntu下安裝arm的交叉編譯工具是常用到的,下面以arm linux gcc 4.3.2為例講解arm下安裝交叉編譯工具 將 arm linux gcc 4.3.2.tar.gz 上傳到 usr local arm 下面 注意,如果當前目錄下沒有arm資料夾,請自己建立乙個 一般 我們都是通...