国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

迅為IMX6ULL開發板Ubuntu下C編程入門(一)

發布時間:2020-5-22 12:39    發布者:落風
本篇段倆部分3.1 Linux下編寫第一個 C C 程序,3.2gcc 編譯器
我們在 Windows 下使用 C 語言開發的時候,一般都會有支持 Windows 的開發工具,比如我們學習 51 單片機或者 STM32,所使用的的 Keil 開發軟件。此類開發工具一般都會集編輯、編譯于一體,我們只需要編輯好代碼,電機開發工具的編譯按鈕,就可以自動為我們編譯出可執行的二進制文件了。Ubuntu 下的 C 語言開發與 Windows 下的 C 語言開發不一樣的,并沒有圖形界面的開發工具,而且編輯和編譯是分開的。我們需要使用文本編輯軟件先編寫代碼,然后使用編譯工具(GCC)來編譯,最終生成可執行的二進制文件。如果我們的工程中有多個源文件,在編譯的時候我們通常會通過 Makefile 文件來管理整個工程的源文件。本章我們來學習如何在 Ubuntu 下進行 C 語言成的編輯,GCC 編譯,Makefile 文件的使用。通過本章學習我們可以掌握 Linux 下的 C 語言開發基本方法,為后面的學習做好準備。
3.1 Linux  下編寫第一個 C C 程序 程序
本章節開始的部分我們介紹了 Ubuntu 下 C 程序開發分成兩部分:編輯和編譯。Ubuntu 下有很多種文本編輯的工具,如 vim、Gedit、Emacs,這里我們使用前面章節介紹的 vim 文本編輯工具來編輯 C 程序。相信大家在學習 C 語言的時候都是從“Hello World”這個程序開始的吧,下面我們通過這個程序,來學習下 Linux下 C 程序開發的流程。
3.1.1  代碼編寫
首先我們在用戶根目錄下建立文件夾“work”,用于保存所有 C 語言的程序,運行結果如下圖所示:

然后進入創建的文件夾 work,為了方便管理,我們每個例程都創建單獨的文件夾,首先我們創建文件夾“hello_world”來保存我們的第一個 C 程序,如下圖所示:

然后進入上圖中的 hello_world 文件夾,使用 vi 命令新建文件“main.c”,然后在里面輸入下面的代碼:
#include
int mian(int argc, char *argv[])
{
printf("Hello World!\n");
return 0;
}
編寫完以后保存并退出 vim 編輯器,然后可以使用 cat 命令查看代碼是否保存成功,如下圖所示:

通過上圖可以看到代碼已經編輯完成了。
3.1.2  代碼編譯
Ubuntu 下使用 gcc 編譯器來編譯 C 程序,我們在安裝 Ubuntu 系統的時候,gcc 編譯器 morning 安裝好了,我們可以在終端輸入“gcc -v”來查看下 gcc 的版本,如下圖所示:

通過上圖可以看到 gcc 的版本信息,說明我們的 Ubuntu 上已經安裝了 gcc 編譯器了,下面我們來看看怎么通過 gcc 編譯我們的第一個 C 程序,我們在終端輸入“gcc main.c -o main”,然后回車,會生成 main 文件,如下圖所示:

在上面的“gcc main.c -o main”這個命令里面“-o“用來指定編譯生成的文件名字,我們指定的是 main,所以在圖 3.1.2.2 中可以看到生成了文件“main”,如果我們想生成其它的文件名字,我們只需要修改“-o”后面的 main(修改成您希望生成的文件名字)。經過前面的步驟已經生成了可執行文件 main,現在我們演示下在終端如何運行一個可行性的程序,我們直接在終端當前目錄下(可執行文件所在的目錄下)輸入“./main”,然后回車,就可以運行可執行文件 main 了,運行結果如下圖所示:

在上圖中運行的命令“./main”,其中的“./”代表當前目錄下。我們可以看到在終端打印出了 HelloWorld!。至此,Linux 下的 C 語言編輯和編譯的一整套流程我們就介紹完了。
3.2 c gcc 編譯器 編譯器
3.2.1 gcc  命令分析
在 3.1 節我們已經使用 gcc 編譯了 Linux 下的第一個 C 程序,gcc 命令的格式如下:
gcc [參數] [文件名]
主要參數說明如下:
-c 編譯、匯編到目標代碼(.o),不鏈接成可執行文件
-g 生成調試信息
-o 編譯完成后生成的文件名,如果不使用該選項,默認生成 a.out 文件
-O 對程序進行優化編譯,產生的可執行文件執行效率高
-w 不生成任何警告
-S 僅編譯到匯編語言,不進行匯編和鏈接

3.2.2  編譯警告錯誤處理
我們是 Windows 下使用 Keil 或者其他開發工具,在編譯的時候,如果程序有錯誤,開發工具會提示出具體的錯誤信息,可以很方便的定位到問題點,快速的修改出現的問題,gcc 同樣也有類似的功能,下面我們來看下 gcc 的錯誤提示功能,首先我們在 work 目錄下建立文件夾“test2”,然后使用 vim 在 test2 文件夾創建 main.c 文件夾,在 main.c 文件輸入如下代碼:
#include
int main(int argc, char *argv[])
{
int a;
a = 1
printf("a=\n", a);
return 0;
}
上面代碼有兩處錯誤:
第 7 行 最后缺少“;”
第 9 行 printf 語法不對,應該為:printf("a =%d\n", a);
我們使用 gcc 編譯 main.c,可以看到 gcc 會提示錯誤信息,如下圖所示:

從上圖中可以看到在 mian.c 文件的第 9 行 printf 前面缺少“;”我們在第 7 行“a = 1”后面加上“;”,然后繼續編譯,如下圖所示:

從上圖可以看出編譯提示語法格式不對,我們把第 9 行修改成“printf("a=%d\n", a);”,然后在繼續編譯,如下圖所示:

我們可以看到這次 gcc 編譯通過,最終生成了文件 main。我們在終端執行 main,運行結果如下圖所示:

從上圖可以看到運行的結果和我們涉及到額結果一致,通過本例程可以看到 gcc 編譯器不僅可以檢測出
程序的錯誤,而且還會標記處錯誤在哪個文件的哪一行,很方便的幫助我們去修改問題。

更多內容關注:



本文地址:http://m.qingdxww.cn/thread-589719-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九99香蕉在线视频网站 | www.麻豆| 日韩城人免费 | 亚洲人成网站色7799在线播放 | 色a4yy综合私人| 国产乱了真实在线观看 | 成人在线综合网 | 精品动漫在线观看视频一区 | 欧美亚洲欧美日韩中文二区 | 国产欧美日| 香蕉草莓丝瓜茄子番茄绿巨人 | 欧美视频一区在线 | 热99re久久精品天堂vr | 国产在线精品成人一区二区三区 | 四虎午夜影院 | 日本高清在线观看天码888 | 免费精品视频在线 | 免费看国产精品久久久久 | 国产福利小视频在线播放观看 | 2021久久精品99精品久久 | 男人天堂网址 | 国产一级视频播放 | 欧美日韩视频一区三区二区 | 天天爽夜夜爽一区二区三区 | 婷婷综合在线观看丁香 | 久久精品国产99精品最新 | 97视频免费公开成人福利 | 69热在线观看 | 亚洲已满18点击进入在线观看 | 亚洲欧美日韩中文综合v日本 | 一级做a爱片特黄在线观看 一级做a爱片就在线看 | 午夜资源 | 精品视频一区二区三区在线播放 | 日韩 欧美 中文字幕 不卡 | 亚洲影视一区 | 九九视频在线观看视频 | 国产三级国产精品国产国在线观看 | 国产高清a| 天天综合色天天综合色sb | 免费网站无遮挡 | 四虎影院永久网站 |