国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

這篇具有很好參考價(jià)值的文章主要介紹了Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130533941文章來源地址http://www.zghlxwxcb.cn/news/detail-464063.html

紅胖子網(wǎng)絡(luò)科技博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中…

Linux系統(tǒng)移植和驅(qū)動(dòng)開發(fā)專欄

上一篇:《Linux驅(qū)動(dòng)開發(fā)筆記(一):helloworld驅(qū)動(dòng)源碼編寫、makefile編寫以及驅(qū)動(dòng)編譯基本流程》
下一篇:《Linux驅(qū)動(dòng)開發(fā)筆記(三):基于ubuntu的helloworld驅(qū)動(dòng)源碼編寫、makefile編寫以及驅(qū)動(dòng)編譯加載流程測(cè)試》


前言

??編譯ubuntu驅(qū)動(dòng)之前,發(fā)現(xiàn)使用的gcc是7.3.0,而使用apt管理和下載的都無法直接或間接安裝gcc7.3.0,于是只能從源碼安裝gcc7.3.0編譯器。


GCC

概述

??GCC是以GPL許可證所發(fā)行的自由軟件,也是GNU計(jì)劃的關(guān)鍵部分。GCC的初衷是為GNU操作系統(tǒng)專門編寫一款編譯器,現(xiàn)已被大多數(shù)類Unix操作系統(tǒng)(如Linux、BSD、MacOS X等)采納為標(biāo)準(zhǔn)的編譯器,甚至在微軟的Windows上也可以使用GCC。GCC支持多種計(jì)算機(jī)體系結(jié)構(gòu)芯片,如x86、ARM、MIPS等,并已被移植到其他多種硬件平臺(tái)。
??GCC原名為GNU C語言編譯器(GNU C Compiler),只能處理C語言。但其很快擴(kuò)展,變得可處理C++,后來又?jǐn)U展為能夠支持更多編程語言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各類處理器架構(gòu)上的匯編語言等,所以改名GNU編譯器套件(GNU Compiler Collection) 。

下載gcc7.3.0源碼

??下載地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz


GCC編譯

步驟一:安裝所需要的環(huán)境

??這里肯定要上網(wǎng)了,要是沒有上網(wǎng)則只能自己去下載源碼包,然后配置、編譯和安裝三部曲了,而且還得注意版本號(hào),所以最好還是先安裝一次查看版本號(hào),再去下載對(duì)應(yīng)版本號(hào)的源碼,去目標(biāo)機(jī)離線安裝。
??下面是configure配置gcc會(huì)出現(xiàn)的問題,所以需要先安裝依賴庫(kù)。
??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

sudo apt-get install libgmp-dev
sudo apt-get install libmpfr-dev
sudo apt-get install libmpc-dev

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??這里安裝完,然后裝的gcc7.5, 不要卸載已有的gcc,查看“入坑一”。

步驟二:下載解壓

tar xvf gcc-7.3.0.tar.gz

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

步驟三:配置configure

./configure

??這里要增加c和c++的配置,不然編譯出來只有g(shù)++了

./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

??查看 “入坑二”。
??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

步驟四:編譯make

make -j4

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??第一次編譯后再下執(zhí)行幾次make -j4,最后再執(zhí)行一次make,確認(rèn)每個(gè)線程都正常跑完(PS:有些錯(cuò)了就停止了,但是被沒停止的線程沖掉了,保持這個(gè)習(xí)慣即可避免疏忽)。
??編譯出錯(cuò)。

步驟五:編譯出錯(cuò)“fatal error: asm/errno.h: No such file or directory”

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??引入error.h的頭文件,這里查了很多asm文件夾,最后發(fā)現(xiàn)只有asm-generic下的才有error.h

sudo find / -name asm

??以下的一些都沒有error.h:
??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??只有asm-generic下的才有error.h

sudo ln -s /usr/include/asm-generic /usr/include/asm

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

??然后繼續(xù)編譯,make -j8
??編譯出錯(cuò)。

步驟六:編譯出錯(cuò)“sanitizer_syscall_generic.inc:15:24: error: ‘__NR_open’ was not declared in this scope”

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??這里錯(cuò)誤實(shí)際上是前面帶進(jìn)來的

sudo ln -s /usr/include/asm-generic /usr/include/asm

??是錯(cuò)誤的,需要更改為另外一個(gè),這里要先刪除,否則ln新建不了:

sudo rm /usr/include/asm
sudo ln -s /usr/include/x86_64-linux-gnu/asm /usr/include/asm
ls /usr/include/asm
ls -l /usr/include/asm

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??然后繼續(xù)編譯,make -j8

步驟七:編譯成功

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

步驟八:安裝

sudo make install

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器
??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

步驟九:查看版本號(hào)確認(rèn)

??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器


入坑

入坑一:本地需要g++,否則編譯報(bào)錯(cuò)

問題

??卸載了g++,編譯gcc的時(shí)候報(bào)錯(cuò):
??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器

原理

??可能跟交叉編譯一樣,交叉編譯的編譯器也是需要一個(gè)編譯器編譯交叉編譯器的源碼來生成交叉編譯器的(只不過最近幾年sdk已經(jīng)自帶了交叉編譯器了)

解決

??安裝gcc,再次編譯即可。

入坑二:安裝后只有g(shù)++,沒有g(shù)cc

問題

??gcc版本是7.5,g++版本是7.3。

原理

??配置文件需要配置編譯c和c++的,默認(rèn)只有c++的。

解決

??修改配置文件

./configure

??這里要增加c和c++的配置,不然編譯出來只有g(shù)++

./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

??然后重新編譯走一遍流程解決。
??Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器


上一篇:《Linux驅(qū)動(dòng)開發(fā)筆記(一):helloworld驅(qū)動(dòng)源碼編寫、makefile編寫以及驅(qū)動(dòng)編譯基本流程》
下一篇:《Linux驅(qū)動(dòng)開發(fā)筆記(三):基于ubuntu的helloworld驅(qū)動(dòng)源碼編寫、makefile編寫以及驅(qū)動(dòng)編譯加載流程測(cè)試》


若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130533941

到了這里,關(guān)于Linux驅(qū)動(dòng)開發(fā)筆記(二):ubuntu系統(tǒng)從源碼編譯安裝gcc7.3.0編譯器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux驅(qū)動(dòng)開發(fā)筆記(四):設(shè)備驅(qū)動(dòng)介紹、熟悉雜項(xiàng)設(shè)備驅(qū)動(dòng)和ubuntu開發(fā)雜項(xiàng)設(shè)備Demo

    Linux驅(qū)動(dòng)開發(fā)筆記(四):設(shè)備驅(qū)動(dòng)介紹、熟悉雜項(xiàng)設(shè)備驅(qū)動(dòng)和ubuntu開發(fā)雜項(xiàng)設(shè)備Demo

    若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134533533 紅胖子網(wǎng)絡(luò)科技博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中… 上一篇:《Linux驅(qū)動(dòng)開發(fā)筆記(三

    2024年02月05日
    瀏覽(49)
  • Docker系列(1)安裝Linux系統(tǒng)編譯Android源碼

    Docker系列(1)安裝Linux系統(tǒng)編譯Android源碼

    目錄 一、開發(fā)環(huán)境搭建 1.Windows docker環(huán)境安裝 2.配置ubuntu18.04系統(tǒng) 2.0 準(zhǔn)備工作 2.1 安裝ubuntu18.04 2.2 安裝常用工具 2.3 安裝rk3568環(huán)境編譯工具 2.4 新增用戶 2.5 注意避坑!! 二、下載編譯 Android_SDK 3.1 第一步,下載 SDK 3.2 第二步,更新 SDK 3.3 第二步,編譯 SDK 手動(dòng)編譯 iCore-3568JQ An

    2024年02月11日
    瀏覽(22)
  • 【樹莓派Linux內(nèi)核開發(fā)】入門實(shí)操篇(虛擬機(jī)Ubuntu環(huán)境搭建+內(nèi)核源碼獲取與配置+內(nèi)核交叉編譯+內(nèi)核鏡像掛載)

    【樹莓派Linux內(nèi)核開發(fā)】入門實(shí)操篇(虛擬機(jī)Ubuntu環(huán)境搭建+內(nèi)核源碼獲取與配置+內(nèi)核交叉編譯+內(nèi)核鏡像掛載)

    1.ubuntu18.04鏡像下載 打開ubuntu18.04鏡像傳送門,進(jìn)入到主頁(yè) 往下滑,找到相應(yīng)鏡像并下載 等待鏡像下載完畢即可 2.VMware軟件安裝 VMware是一款 運(yùn)行在windows系統(tǒng)上的虛擬機(jī)軟件 ,可以虛擬出一臺(tái)計(jì)算機(jī)硬件,方便安裝各類操作系統(tǒng) 進(jìn)入VMware官網(wǎng)傳送門,來到主頁(yè),往下滑,選

    2024年04月29日
    瀏覽(28)
  • FFmpeg開發(fā)筆記(七)歐拉系統(tǒng)編譯安裝FFmpeg

    FFmpeg開發(fā)筆記(七)歐拉系統(tǒng)編譯安裝FFmpeg

    FFmpeg支持Linux、macOS、Windows、Android等操作系統(tǒng),其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官網(wǎng)的編譯入口地址為 https://trac.ffmpeg.org/wiki/CompilationGuide,在這里可以找到FFmpeg對(duì)各系統(tǒng)的編譯說明。更多詳細(xì)的FFmpeg開發(fā)知識(shí)參見《FFmpeg開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到

    2024年03月23日
    瀏覽(27)
  • Linux更新操作系統(tǒng)Openssh版本9.3p1(源碼編譯安裝)

    安裝依賴 yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel yum install -y pam* zlib* openssh-9.3p1.tar.gz openssl-3.1.0.tar.gz 備份文件 cp /etc/pam.d/sshd /etc/pam.d/sshd.bak 解壓安裝包 tar zxvf openssl-3.1.0.tar.gz cd openssl-3.1.0 備份舊Openssl mv /usr/bin/openssl /usr/bin/openssl_old mv /usr/include/

    2024年02月12日
    瀏覽(35)
  • 基于RK3588的嵌入式linux系統(tǒng)開發(fā)(二)——uboot源碼移植及編譯

    基于RK3588的嵌入式linux系統(tǒng)開發(fā)(二)——uboot源碼移植及編譯

    ??????? 由于官方的SDK占用空間較大(大約20GB左右),需要聯(lián)系相關(guān)供應(yīng)商提供,且官方的SDK通過各種腳本文件進(jìn)行集成編譯,難以理解系統(tǒng)開發(fā)的詳細(xì)過程。本章介紹直接從官方Github網(wǎng)站下載源碼進(jìn)行移植,進(jìn)行uboot移植及編譯,具體內(nèi)容如下所述: 1.進(jìn)入官方的github網(wǎng)

    2024年01月16日
    瀏覽(27)
  • Ubuntu 22.04 編譯安裝 Qt mysql驅(qū)動(dòng)

    Ubuntu 22.04 編譯安裝 Qt mysql驅(qū)動(dòng)

    參考自 Ubuntu20.04.3 QT5.15.2 MySQL驅(qū)動(dòng)編譯 Ubuntu 18.04 編譯安裝 Qt mysql驅(qū)動(dòng) 下邊這篇博客不是主要參考的, 但是似乎解決了我的難題(找不到 libmysqlclient.so ) ubuntu18.04.2 LTS 系統(tǒng)關(guān)于Qt5.12.3 無法加載mysql驅(qū)動(dòng),需要重新編譯MYSQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)的問題以及解決方案 系統(tǒng)版本 MySQL 肯定要先安

    2024年01月16日
    瀏覽(27)
  • 【萬字詳細(xì)教程】Linux to go——裝在移動(dòng)硬盤里的Linux系統(tǒng)(Ubuntu22.04)制作流程;一口氣解決系統(tǒng)安裝/引導(dǎo)文件遷移/顯卡驅(qū)動(dòng)安裝等問題

    【萬字詳細(xì)教程】Linux to go——裝在移動(dòng)硬盤里的Linux系統(tǒng)(Ubuntu22.04)制作流程;一口氣解決系統(tǒng)安裝/引導(dǎo)文件遷移/顯卡驅(qū)動(dòng)安裝等問題

    如果不想看前面的廢話??,請(qǐng)?zhí)D(zhuǎn)到 1.準(zhǔn)備工具 處開始閱讀。 制作基于PSSD的Linux to go系統(tǒng)是我很早就打算做的事情,但這畢竟不是常規(guī)的裝系統(tǒng),因此在這之前我也調(diào)研了許多經(jīng)驗(yàn)貼,不過我的思路是找到一個(gè)看起來最靠譜而且步驟相對(duì)簡(jiǎn)單的帖子,然后一路跟著走下去。

    2024年02月22日
    瀏覽(283)
  • Linux | Ubuntu配置JDK源碼編譯環(huán)境

    宿主機(jī)環(huán)境:Windows 11 家庭版 21H2 版本 宿主機(jī)操作系統(tǒng)版本:22000.348 虛擬機(jī)環(huán)境:VMware? Workstation 17 Pro 虛擬機(jī)操作系統(tǒng)版本:Ubuntu 22.10 參考:《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐(第3版)》 在 Win 11 家庭版中使用 VMware 可能會(huì)產(chǎn)生一些兼容性問題,比如藍(lán)屏、無法

    2024年02月03日
    瀏覽(19)
  • QT學(xué)習(xí)筆記-開發(fā)環(huán)境編譯Qt MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)與交叉編譯Qt MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)

    QT學(xué)習(xí)筆記-開發(fā)環(huán)境編譯Qt MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)與交叉編譯Qt MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)

    如果需要在QT程序中實(shí)現(xiàn)與MySQL數(shù)據(jù)庫(kù)的交互,那么必不可少的一環(huán)就是對(duì)Qt MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)的編譯。 操作系統(tǒng):Windows10 專業(yè)版 64位 Qt版本:Qt 5.15.2 開發(fā)環(huán)境Qt安裝路徑:D:Qt 交叉編譯服務(wù)器:Ubuntu 18.4 交叉編譯服務(wù)器Qt安裝路徑:/opt/Qt 目標(biāo)芯片:rk3568 目標(biāo)平臺(tái):arm64 Qt安裝

    2024年02月11日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包