娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

解決方法:編譯IMX6ULL裸機串口程序提示錯誤arm-none-eabi-ld: cannot find -lgcc: 沒有那個文件或目

發布者:Yinyue1314最新更新時間:2025-02-24 來源: jianshu關鍵字:編譯  裸機串口  提示錯誤 手機看文章 掃描二維碼
隨時隨地手機看文章

一、問題

編譯IMX6ULL野火裸機串口程序出現錯誤:

make[1]: 進入目錄“/home/leung/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/device”

arm-none-eabi-gcc -fno-builtin -I/home/leung/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/include -c led.c

arm-none-eabi-gcc -fno-builtin -I/home/leung/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/include -c system_MCIMX6Y2.c

arm-none-eabi-gcc -fno-builtin -I/home/leung/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/include -c clock.c

arm-none-eabi-gcc -fno-builtin -I/home/leung/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/include -c uart.c

arm-none-eabi-ld -r led.o system_MCIMX6Y2.o clock.o uart.o  -o device.o

make[1]: 離開目錄“/home/leung/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/device”

arm-none-eabi-ld -Tbase.lds start.o main.o device/device.o -o base.elf -static -L /usr/lib/gcc/arm-none-eabi/6.3.1 -lgcc

arm-none-eabi-ld: cannot find -lgcc: 沒有那個文件或目錄

make: *** [makefile:9:all] 錯誤 1


二、原因

因為arm-none-eabi-gcc的版本比較高,不支持以上指令。

查看當前gcc版本:
arm-none-eabi-gcc -v
當前版本為10.3.1


三、解決方法

3.1 下載Linaro GCC

Linaro 是一間由ARM發起,與其它ARM SOC公司共同投資的非盈利性質的開放源代碼軟件工程公司,Linaro 開發了很多軟件,最著名的就是 Linaro GCC 編譯工具鏈(編譯器)。

官網下載:
【老版本,穩定版】https://releases.linaro.org/components/toolchain/binaries/
【新版本,開發版】https://snapshots.linaro.org/gnu-toolchain/
百度網盤:https://pan.baidu.com/s/1w7-PwMcCwXZpOhjfQYFxQg?pwd=2jh0  提取碼:2jh0

  • 選擇版本號


  • 選擇ARM架構類型


  • 選擇具體的編譯器平臺


  • 創建存放編譯器的目錄
    sudo mkdir /usr/local/arm

  • 將編譯器復制到剛剛的目錄
    sudo cp gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f

  • 將編譯器工具進行解壓
    sudo tar -vxf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

  • 修改環境變量,使編譯器永久生效
    使用 VI 打開/etc/profile 文件:
    sudo vi /etc/profile
    打開/etc/profile 以后,在最后面輸入如下所示內容:
    export PATH=$PATH:/usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin


  • 修改好以后就保存退出,重啟系統,交叉編譯工具鏈(編譯器)就安裝成功了
    sudo reboot

  • 安裝完成后使用如下命令查看版本
    arm-linux-gnueabihf-gcc –v


  • 如果是Linaro 4.9的老版本編譯器,還需要安裝額外的庫
    sudo apt-get install lsb-core lib32stdc++6

3.2 修改makefile

  • 使用 VIM 打開/embed_linux_driver_tutorial_imx6_code-master/bare_metal/uart/makefile 文件:
    vim makefile

  • 將 libgcc_address := /usr/lib/gcc/arm-none-eabi/6.3.1 修改為 /usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0
    修改后:


  • 出現其他錯誤 undefined reference to `raise'


arm-none-eabi-ld -Tbase.lds start.o main.o device/device.o -o base.elf -static -L /usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0 -lgcc

arm-none-eabi-ld: /usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/libgcc.a(_dvmd_lnx.o): in function `__aeabi_ldiv0':

/home/tcwg-buildslave/workspace/tcwg-make-release_1/snapshots/gcc.git~linaro-7.5-2019.12/libgcc/config/arm/lib1funcs.S:1545: undefined reference to `raise'

make: *** [makefile:9:all] 錯誤 1


  • 在main.c中添加以下函數

int raise(void){
    return 0;}
  • 重新編譯成功



關鍵字:編譯  裸機串口  提示錯誤 引用地址:解決方法:編譯IMX6ULL裸機串口程序提示錯誤arm-none-eabi-ld: cannot find -lgcc: 沒有那個文件或目

上一篇:IMX6ULL學習筆記(21)——MMDC接口使用(DDR3測試)
下一篇:IMX6ULL學習筆記(20)——UART串口使用

推薦閱讀最新更新時間:2025-05-16 10:55

IMX6ULL學習筆記】一、Linux開發環境搭建
注:參考【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.6 一、Ubuntu 和 Windows 文件互傳 在開發的過程中會頻繁的在 Windows 和 Ubuntu 下進行文件傳輸,比如在 Windwos 下進行代碼編寫,然后將編寫好的代碼拿到 Ubuntu 下進行編譯。Windows 和 Ubuntu 下的文件互傳我們需要使用 FTP 服務,設置方法如下: 1、開啟 Ubuntu 下的 FTP 服務 打開 Ubuntu 的終端窗口,然后執行如下命令來安裝 FTP 服務: sudo apt-get install vsftpd 等待軟件自動安裝,安裝完成后使用 VI 命令打開/etc/vsftpd.conf,如下:
[單片機]
【<font color='red'>IMX6ULL</font>學習筆記】一、Linux開發環境搭建
喜羊羊系列【設備 - 驅動器 編譯進內核】
*針對不同的平臺??赡芊胚M的不是以下的文件內,僅僅做參考 1、頭文件 放進:linux-3.0.8archarmplat-samsungincludeplat led.h #ifndef _HEAD_H #define _HEAD_H #define MAGIC 'h' #define LED_ON _IOW(MAGIC,1,int) #define LED_OFF _IOW(MAGIC,0,int) struct led_device{ dev_t devno; unsigned int led_major; struct cdev *led_cdev; struct cl
[單片機]
喜羊羊系列【設備 - 驅動器 <font color='red'>編譯</font>進內核】
fedora26在編譯s3c2440內核時make menuconfig *** Unable to find the ncurses libraries
# make menuconfig *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try again. *** make : *** fedora 安裝 ncurses 庫 # yum provides /*/ncurses # yum install -y ncurses-devel-6.0-8.20170
[單片機]
fedora26在<font color='red'>編譯</font>s3c2440內核時make menuconfig *** Unable to find the ncurses libraries
從零開始at91sam9263的linux編程----內核編譯
內核的編譯。 linux的新內核一般功能都會更強大,且都會相對穩定些,所以優選最新版本的內核。現 在最先的內核應該是2.6.34了,不過atmle官網上還沒有該版本對應的補丁,所以就使用 2.6.33。 首先從官網下載 linux-2.6.33.tar.bz2和補丁2.6.33-at91.patch 先解壓縮linux-2.6.33.tar.bz2,然后打上補丁,如下 # sudo tar xjvf ./linux-2.6.33.tar.bz2 然后 # sudo gunzip 2.6.33-at91.patch.gz gzip: 2.6.33-at91.patch.gz: not in gzip forma
[單片機]
mini2440交叉編譯工具安裝及使用過程中可能會遇到的問題
1. 執行arm-linux-gcc -v之后提示.../.arm-none-linux-gnueabi-gcc not found 最近開始學習嵌入式 linux ,按照說明文檔安裝交叉了編譯工具并且設置了PATH,但時執行arm-linux-gcc -v之后卻提示 .../.arm-none-linux-gnueabi-gcc not found 上網搜索之后發現之所以出現這個問題是因為linux主機操作系統是64位操作系統,而交叉編譯工具是32位的,需要依賴 一個32位庫,網上給出的解決辦法是安裝 lsb-core ,按照提示安裝成功后再執行arm-linux-gcc -v就好了。 2.執行arm-linux-gcc 編
[單片機]
STVP編譯時遇到no default placement for segment .FLASH_CODE
最近編譯STM8S003時需要使用flash庫函數,看起來簡單,實則折騰了超過1天。今天總結方法如下: 1.修改stm8s.h 156行 #define RAM_EXECUTION 注釋去掉 如果用的是COSMIC這個 可以不去 2、在project的source和include files中添加 stm8s_flash文件 3.右鍵點擊項目文件,選擇settings- linker- category- Input,然后Code,constants那一區域添加.FLASH_CODE,注意要大寫! 此時使用flash的函數不會再報錯了。 至于在主文件中#include stm8s_flash.h 這個是沒有必要的。 //讀E2
[單片機]
如何編譯文件得到的bootloader的.hex文件(例如:atmega328p)
一、打開Arduino ide的文件存放位置,本人是將其放在D盤的Arduino中 在D:Arduinoarduinohardwarearduinoavrbootloadersoptiboot文件中 你會看到有omake,omake.bat,Makefile,以及.h,.c,.hex等文件。而其中的optiboot_atmega328.hex文件就是atmega328p的bootloader,其就是 arduino ide 中為arduino uno板子燒錄的bootloader(如何燒錄引導程序bootloader,請問度娘) 二、準備工作:移除optiboot_atmega328.hex文件(移除前做好備份)
[單片機]
如何<font color='red'>編譯</font>文件得到的bootloader的.hex文件(例如:atmega328p)
STM32開發筆記17: 解決使用--CPP11編譯USB驅動報錯問題
單片機型號:STM32L053R8T6 項目希望使用C++語言進行程序設計,在Keil中使用C++語言的方法,我已經在在Keil中使用C++進行程序設計進行介紹過,不過對于STM32CubeMX生成的STM32L0XX相關文件進行編譯時,提示如下圖所示的錯誤。 仔細分析可以看出,所有的錯誤都集中在usbd_conf.c文件,定位錯誤的具體語句,如下所示。 USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev) { HAL_StatusTypeDef hal_status = HAL_OK; USBD_StatusTypeDef usb_s
[單片機]
STM32開發筆記17: 解決使用--CPP11<font color='red'>編譯</font>USB驅動報錯問題
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 新泰市| 阜新市| 巴彦淖尔市| 光山县| 滁州市| 湟源县| 利津县| 新乡县| 裕民县| 伊金霍洛旗| 社旗县| 南澳县| 白河县| 夏邑县| 建德市| 沙雅县| 普定县| 茶陵县| 静乐县| 武鸣县| 宝坻区| 北流市| 乌兰浩特市| 保康县| 铁岭市| 泰安市| 永州市| 新丰县| 武穴市| 酒泉市| 当雄县| 成安县| 姚安县| 吉木乃县| 太仆寺旗| 宜州市| 黄平县| 凌源市| 萨嘎县| 馆陶县| 永春县|