那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式操作系統都基于GCC進行源碼編譯

Q4MP_gh_c472c21 ? 來源:未知 ? 作者:李倩 ? 2018-03-30 13:57 ? 次閱讀

1.GCC相關介紹

GCC與gcc有什么不同?

● GCC(GNU Compiler Collection)

GNU編譯器集合,包含眾多語言的編譯器:C、C++Java、D、Objective-C、etc

●gcc:特指GCC中的C語言編譯器

GCC VS 嵌入式

●多數嵌入式操作系統都基于GCC進行源碼編譯

LinuxVxWorksAndroid、etc

●實際開發中的應用

內核開發:gcc

應用開發:gcc / g++ / gdc

2 初識編譯器

●gcc將代碼編譯成可執行程序的過程會完成預處理(preprocessing)、編譯(compilation)、匯編(assembly)、鏈接(linking)四個步驟

●編譯器由預處理器(cpp工具,C Preprocessor)、編譯器(cc工具,C and C++ compiler)、匯編器(as工具,assembler)、連接器(ld工具)組成

3 gcc關鍵編譯選項

3.1 預處理指令

3.1.1 指令格式

gcc -E file.c -o file.i

3.1.2 預處理文件相關內容

從file.i文件中我們可以看到存在大量的以“#”開頭的行。每行的格式是“# 行號 文件名 標志“,其中的”行號“與”文件名“表示從它后一行開始的內容來源于哪一個文件的哪一行;標志可以是1、2、3和4四個數字,每個數字的含義如下:

當file.c使用到非系統頭文件且它們不在當前目錄下時,需要通過使用gcc的-I參數加以指定,否則gcc會因為無法獲得必要的頭文件進行宏展開而報錯。

3.2 編譯指令

3.2.1 指令格式

gcc -S file.i -o file.sgcc -S -O2 file.c -o file.s

3.2.2 說明

使用-S參數時,我們可以根據需要使用-O選項。

3.3 匯編指令

3.3.1 指令格式

gcc -c file.s -o file.o

3.4 生成映射文件

3.4.1 指令格式

gcc -Wl,-Map=file.map file.c

3.4.2 說明

映射文件是通過ld鏈接器來生成的,我們可以通過映射文件了解一個程序文件中各符號在內存中的布局信息。gcc的-Wl選項用于指定傳遞給鏈接器的選項,-Map=file.map選項由gcc傳遞給鏈接器以指示鏈接器為我們生成名為file.map的映射文件。在使用-Wl選項時,它后面的選項如有多個則需要用逗號加以分割。

3.5 宏定義

3.5.1 指令格式

gcc -D'TEST="test"' file.c

3.5.2 說明

如果宏為字符串時,則需要用單引號引起來。

3.6 獲取系統頭文件路徑

3.6.1 指令格式

gcc -v file.c

3.6.2 說明

系統頭文件是指C語言本身和操作系統相關的頭文件。在使用-v選項獲取系統頭文件路徑時,必須后面帶一個有效的C程序源文件,否則gcc輸出的信息將不包含系統頭文件路徑這一內容。

3.7 生成依賴關系

3.7.1 指令格式

獲取目標的完整依賴關系:gcc -M test.c獲取目標的部分依賴關系:gcc -MM test.c

3.7.2 說明

由于系統頭文件在絕大多數情形下是不會改變的,因此在構造make所需的依賴關系時不必將它們納入其中。通過-MM選項,可以讓gcc生成不包含系統頭文件的依賴關系。

3.8 指定庫文件及庫文件搜索路徑

3.8.1 指令格式

-L選項:指定庫文件的搜索路徑-l選項:指定庫文件ar crs libfunc.a func.ogcc test.c -L. -lfunc

3.8.2 說明

注意,-L選項用于告訴gcc可以從哪個目錄查找庫文件,可以多次使用它以指定多個目錄;-I選項則用于告訴gcc在生成可執行程序時需要鏈接的庫名,這一選項同樣可以多次使用以指定多個庫。使用-l選項時要注意后面所跟的名字并不包括“lib”前綴和“.a”后綴。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5093

    文章

    19178

    瀏覽量

    307709
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137729
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49288

原文標題:初識?嵌入式C語言編譯器:GCC

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式操作系統有哪些

      1.嵌入式Linux  嵌入式Linux(Embedded Linux)是標準Linux經過小型化裁剪處理之后的專用Linux操作系統,能夠固化于容量只有幾KB或者幾MB的存儲器芯片或者單片機中
    發表于 06-20 15:13

    嵌入式Linux操作系統的使用

    這是第一次接觸嵌入式設計課程,課程設計內容目標如下:1、了解嵌入式技術;2、掌握嵌入式Linux操作系統的使用;(命令)3、掌握嵌入式Lin
    發表于 11-08 06:43

    嵌入式實時操作系統教程

    嵌入式實時操作系統教程:以VRTX為對象詳細介紹了嵌入式實時操作系統的原理和應用,特別是第一部分關于嵌入式實時
    發表于 04-19 21:55 ?44次下載
    <b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統</b>教程

    源碼公開的嵌入式實時操作系統T-Kernel

     本文主要講述的是源碼公開的嵌入式實時操作系統T-Kernel。
    發表于 04-24 10:55 ?25次下載

    嵌入式操作系統uClinux和eCos的比較

    uClinux和eCos操作系統是兩種性能優良、源碼公開且被廣泛應用的免費嵌入式操作系統。本文通過對uclinux和eCos的對比,分析和總結了嵌入
    發表于 04-18 08:36 ?1743次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>uClinux和eCos的比較

    嵌入式操作系統的網絡加載實現

      在復雜的應用系統中通常需要嵌入式操作系統的支持,這樣嵌入式操作系統鏡像文件的尺寸往往就會變
    發表于 08-25 14:02 ?1285次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>的網絡加載實現

    嵌入式操作系統-李春杰

    主要內容: 嵌入式操作系統概述 典型嵌入式操作系統介紹 嵌入式操作系統選型
    發表于 01-04 18:30 ?0次下載

    UCOS-II:源碼公開的實時嵌入式操作系統

    UCOS-II:源碼公開的實時嵌入式操作系統
    發表于 04-20 13:55 ?9次下載

    嵌入式操作系統是什么_嵌入式操作系統有哪些

    嵌入式操作系統(Embedded OperatingSystem,簡稱:EOS)是指用于嵌入式系統操作系統
    發表于 04-08 14:36 ?2.1w次閱讀

    Linux嵌入式操作系統有哪些優勢

    嵌入式Linux操作系統是將Linux操作系統進行裁剪,使Linux操作系統能夠在嵌入式計算機系統
    發表于 07-10 16:34 ?5158次閱讀

    嵌入式操作系統如何應用_嵌入式操作系統的組成

    本文首先介紹了入操作系統的特點,其次闡述了嵌入式操作系統的應用,最后介紹了嵌入式操作系統的組成
    發表于 09-01 16:36 ?3638次閱讀

    什么是嵌入式操作系統 常見的嵌入式系統有哪些

    、INTEGRITY、OSE、C ExecuTIve  什么是嵌入式操作系統 嵌入式操作系統是一種支持嵌入式
    發表于 10-21 09:36 ?27次下載
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b> 常見的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>有哪些

    嵌入式操作系統

    參考:[1] 《嵌入式系統軟件及操作系統》1、嵌入式操作系統的功能在嵌入式
    發表于 10-21 11:21 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>

    嵌入式操作系統

    嵌入式操作系統一、嵌入式操作系統概述1.1 嵌入式操作系統的特點1.2
    發表于 11-03 18:36 ?46次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>

    什么是嵌入式操作系統

    嵌入式操作系統是一種專門的操作系統(OS),旨在為非計算機的設備執行特定任務。嵌入式操作系統的主要工作是運行允許設備完成其工作的代碼。
    的頭像 發表于 12-23 15:33 ?7885次閱讀
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>?
    狮威百家乐官网娱乐| 赌博百家乐官网有技巧吗| 克拉克百家乐官网的玩法技巧和规则 | 百家乐园蒙特卡罗| ez百家乐官网技巧| 威尼斯人娱乐城官方网站| 百家乐官网15人桌布| 百家乐平注常赢玩法技巧| 澳门百家乐官网技巧经| 哪家百家乐优惠最好且信誉不错| 网络百家乐官网打揽| 69棋牌游戏| 百家乐官网追号工具| 2013现金棋牌游戏| 百家乐玩法介绍图片| 菲律宾百家乐官网的说法| 筹码百家乐的玩法技巧和规则| 百家乐官网博彩开户博彩通| 百家乐备用网址| 百家乐官网制胜绝招| 白菜娱乐城| 戒掉百家乐的玩法技巧和规则| 鼎龙百家乐官网的玩法技巧和规则 | 真龙娱乐| 百家乐庄家抽水的秘密| 百家乐官网游戏模拟| 彩票大赢家| 有关百家乐玩家论坛| 百家乐官网单跳| 大发888娱乐场| 澳门百家乐家用保险柜| 百家乐官网投注方法网| 大发888心水论坛| 百家乐最好的玩法| 百家乐官网娱乐城足球盘网| 今晚六合彩开奖结果| 百家乐赌场破解| 百家乐官网高额投注| 应城市| 威尼斯人娱乐城怎么玩| 太阳城百家乐看牌|