搭建Linux C語言開發環境

2021-01-09 華清遠見成都中心

華清遠見成都中心

高端IT就業培訓專家

在Linux開發環境上學習C語言,對於一個從零開始學習嵌入式的門外漢來說,是一個很好的選擇,學習了C語言,又熟悉了Linux 作業系統。

1. 開發工具下載及安裝:

虛擬機 VMware 10

下載地址:

Ubuntu 12.04

下載地址:

VMware虛擬機上安裝在Windows中的一個虛擬電腦的軟體。因為我們需要用到linux的真實環境,又不能完全脫離windows的一些文件操作,再在虛擬機中安裝Ubuntu 12.04系統。

安裝步驟

註冊

最後一步要求輸入許可證密鑰,本站提供親測可用的註冊密鑰,授權形式為批量,並且永不過期,即永久激活,註冊碼地址:http:///vmware-workstation-10-0.html

VMware Workstation 10另外一個特點是內置了簡體中文,

如上圖:在虛擬機上安裝了ubuntu, windows和Linux切換起來非常方便

2. GCC編譯環境的安裝

1、gcc

要進行C語言編程,首先得有個C語言的編譯器,Linux下常用的是GNU C Compiler gcc。

比如cpp-4.1和gcc-4.1、cpp-3.3和gcc-3.4

2、cpp

gcc要進行程序編譯,首先需要進行一個預編譯過程。該過程對程序原始碼進行預處理。

3、libgcc1

gcc還依賴於libgcc1這個軟體包。libgcc1是用於gcc軟體自身的必須組件。

4、libc6

C語言程序要能夠運行,需要一些運行時庫文件和一些庫文件操作命令。libc6這個軟體包就是用來提供這些的。這個軟體包幾乎是Linux系統自帶的,因為所有C程序的運行都離不開此軟體包。

5、binutils

程序從原始碼到可執行程序的過程中,必然需要一些工具來輔助完成。binutils軟體包就是提供一些工具的,這個軟體包提供下面這些非常有用的命令:

6、locales

這個軟體包提供本地語言環境支持

雖然上面列了這麼多必需的軟體包,但實際上因為他們之間有依賴關係,所以在安裝完系統後我們只需要輸入下面一個命令:

apt-get install gcc

系統就會自動幫忙把這些軟體包安裝上。

2.在Ubuntu配置VIM配置編輯環境

編譯和調試環境安裝好了,該裝編輯器了,VIM是個入門難,但用熟了會極大提高編輯效率的工具,其實入門也不算難,用一周基本長常用的20%的功能就都熟悉了,老樣子用apt-get install vim安裝,裝好後運行vim命令,確保版本是7.1以上。裝好後為了編輯方便,先啟用語法高亮顯示,自動縮進,顯示行號等,用VIM編輯VIM的配置文件vim /etc/vim/vimrc,在末尾加上如下設置

1. syntax on

2. set autoindent

3. set cindent

4. set nu

先簡單設置這些,以後再設置配色方案,自動提示,文件列表等功能,VI的使用,大家可以看看VI的中文手冊

編寫簡單的C程序

我們先寫一個統計字符個數的程序

然後編程程序,執行程序

3. vi編輯器的命令

(1)強制退出

底行命令:

:q!

(2)打開其他文件

底行命令:

:e 文件路徑

:e! 文件路徑 ---- 忽略修改

(3)讀取其他文件內容到光標所在的下一行

底行命令:

:r 文件路徑

(3)保存vi編輯器中的內容到另外的文件

底行命令:

:w 文件路徑

(4)移動光標

h j k l 左 下 上 右

(5)翻頁

ctrl+u -- 向前翻半頁

ctrl+d --- 向後翻半頁

ctrl+b -- 向前翻一頁

ctrl+f --- 向後翻一頁

(6)移動光標

^:移動到光標所在的行的第一個非空格字符

Home鍵:移動到光標所在的行的第一個字符

$/End鍵:移動到光標所在的行的最後一個字符

w:移動光標到下一個單詞的首字母

b:移動光標到前一個單詞的首字母

e:移動光標到下一個單詞的尾字母

注:以上3個命令前加數字表示移動多少個單詞

G:前面加數字移動到指定的行,不加數字移動到最後一行

(7)設置行號

底行命令:

:set nu

(8)進入編輯模式

A:移動到本行末進入編輯模式

cw:刪除光標所在位置到所在單詞末尾的字符,進入編輯模式

c$:刪除光標所在位置到本行行尾的字符,進入編輯模式

c^:刪除本行行首到光標所在位置(不包括)的字符,進入編輯模式

(9)編輯模式下的按鍵操作

方向鍵移動光標

Home鍵:移動到本行第一個字符

End:移動到本行最後一個字符

PageUp/PageDown:向上/向下翻頁

退格鍵/del鍵:刪除光標前一個/所在的字符

(10)刪除(剪切)命令

dw:刪除光標到所在單詞尾的所有字符,包括單詞後的空格鍵

de:刪除光標到所在單詞尾的所有字符,不包括單詞後的空格鍵

d$:刪除光標到所在行行尾的所有字符,包括光標

d^:刪除光標所在行行首到光標的所有字符,不包括光標

dG:刪除光標所在行到文件尾

dgg:刪除文件開頭到光標所在行

J:刪除本行的最後換行符,相當於將下一行合併到本行末尾

註:把上述命令的d改成c就會在完成操作後進入編輯模式

(11)撤銷操作

u:撤銷上一次的操作

U:撤銷對當前行的上一次操作

ctrl+r:u的反操作

(12)拷貝命令

yw:拷貝光標到所在單詞尾的所有字符,包括單詞後的空格鍵

ye:拷貝光標到所在單詞尾的所有字符,不包括單詞後的空格鍵

y$:拷貝光標到所在行行尾的所有字符,包括光標

y^:拷貝光標所在行行首到光標的所有字符,不包括光標

yG:拷貝光標所在行到文件尾

ygg:拷貝文件開頭到光標所在行

(13)查找文件內容

底行命令:

/word 在文件中向下查找word內容

?word - 在文件中向上查找word內容

n/N:定位前一個/後一個查找到的內容

注:*可以快速查找光標所在的單詞

查找的時候可以只查找單詞開頭部分或者結尾部分

\

the\> -- 以the結尾的單詞

.可以代表一個任意字符

(14)替換文件內容

底行命令:

:s/old/new - 將本行第一個old替換成new

:s/old/new/g - 將本行所有old替換成new

:#,#s/old/new/g - 將(#,#)行所有old替換成new

:%s/old/new/g - 將文件中的所有old替換成new

可以在命令後加c讓用戶對每一次替換進行確認

(15)補充命令

% ---- 移動光標到配對的括號

. ---- 重複上一個命令

v 進入可視模式,選擇的文本會被高亮,可以對選中的部分進行d(剪切),y(拷貝)操作

底行命令:

:vs 路徑 - 水平顯示打開的文件

:sp 路徑 - 垂直顯示打開的文件

ctrl+ww來在不同的文件之間切換

(16)打開多個文件的操作

vi 路徑1 路徑2 路徑3 ...........

相關底行命令

:args --- 顯示打開的所有文件

:next --- 切換到後一個文件

:prev --- 切換到前一個文件

:first -- 切換到第一個文件

:last --- 切換到最後一個文件

ctrl+^可以立即切換到前一個操作的文件

4.總結:

其實編輯器除了用vi 還可以用gedit, dwrite, kate圖形化編輯器,自己選擇一個習慣的就行了,只是vi編輯工具在今後的終端上會經常用到,所以一般要求掌握它的用法。

相關焦點

  • 現代程式語言起點,C語言之環境搭建
    1972 年,為了移植與開發 UNIX 作業系統,丹尼斯·裡奇在貝爾電話實驗室設計開發了 C 語言。UNIX 作業系統,C編譯器,和幾乎所有的 UNIX 應用程式都是用 C 語言編寫的。但也就是因為它有指針,可以直接進行靠近硬體的操作,所以帶來很多不安全的因素二、C語言的環境搭建1、作業系統說明:推薦使用Unix系統,比如類Unix系統的Linux系統中的CentOs、Ubantu系統,或者使用Mac。
  • 搭建C語言開發環境,其實只需要兩個工具就行了!
    工欲善其事必先利其器,對於c語言學習來說,重要的不是看了多少本書,而是打了多少行代碼。在手打代碼之前,我們當然要先搭建自己的開發環境,對於c語言的學習來說,其實只需要兩個工具就行了,那就是文本編輯器和c編譯器了。
  • Go語言(Golang)環境搭建詳解
    《Go語言實戰》筆記(二十八) | 後記有讀者來信(微信公眾號消息)說能不能寫一篇關於Go語言環境的配置搭建,這樣對於想學Go語言的可以快速的配置起來一個環境。這個的確是我忽略了,按照我寫書的邏輯,也是先有環境搭建,才能有語言功能介紹,這個直接把Go語言的開發環境搭建等配置跳過去實在不應該,所以這篇特意針對Go語言的開發環境搭建、配置、編輯器選型、不同平臺程序生成等做了詳細的介紹。
  • Linux 內核學習:環境搭建和內核編譯
    內核學習之一:環境搭建--安裝Debian7.3本系列文章假設讀者已對linux有一定的了解,其實學習linux內核不需要有很深的關於linux的知識,只需要了解以下內容:linux基礎知識及基本shell命令;現代作業系統的基本概念;C語言和gcc基本使用。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言常量
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • Linux下C應用程式開發
    本文介紹了在 Linux 下能用於 C 應用程式開發和調試的工具. 本文的主旨是介紹如何在 Linux 下使用 C 編譯器和其他 C 編程工具, 而非 C 語言編程的教程.例如, 下面的兩個命令是不同的:    gcc -p -g test.c  gcc -pg test.c  第一條命令告訴 GCC 編譯 test.c 時為 prof 命令建立剖析(profile)信息並且把調試信息加入到可執行的文件裡. 第二條命令只告訴 GCC 為 gprof 命令建立剖析信息.
  • 移動開發是什麼?蘋果,安卓開發,手機app,C語言JAVA的關係
    現在手機流行啊,就業好啊,很多人想學手機app開發,卻不知道到底是什麼玩意,今天給大家簡要介紹一下,快速了解。首先,android開發,繞不開的就是JAVA編程,因為android的底層就是java,再底層就是C語言,可以這樣理解:java是一種程式語言,android應用用java開發,而c語言是另一種程式語言,也可以在android開發,但是需要通過java去調用C語言。
  • 學完C語言後感覺啥都做不了?來,用C語言開發網站!
    首先,本文假設你對網站開發有一定了解。廢話少說,直接進入正題。先說說原理,用C語言來開發網站實際上用到了一個叫 CGI 的技術(通用網關接口)。上句的意思講人話就是「CGI 是用來開發網站後端的一項技術」。
  • 加速程序開發 Python整合C語言模塊
    Python是一種用於快速開發軟體的程式語言,它的語法比較簡單,易於掌握,但存在執行速度慢的問題,並且在處理某些問題時存在不足,如對計算機硬體系統的訪問,對媒體文件的訪問等。而作為軟體開發的傳統程式語言C語言,卻能在這些問題上很好地彌補Python語言的不足。
  • 深度學習筆記15:ubuntu16.04 下深度學習開發環境搭建與配置
    深度學習筆記6:神經網絡優化算法之從SGD到Adam深度學習筆記7:Tensorflow入門深度學習筆記8:利用Tensorflow搭建神經網絡深度學習筆記9:卷積神經網絡(CNN)入門深度學習筆記10:三維卷積、池化與全連接深度學習筆記11:利用numpy搭建一個卷積神經網絡深度
  • Swift語言入門視頻教程:簡介及開發環境搭建
    蘋果公司在今年的WWDC大會上發布了全新程式語言Swift,Swift語言的發布對於開發者們,尤其是iOS開發者們來說確實是蘋果開發者大會的一大亮點。我們可以預想到未來的iOS開發招聘信息很可能會變成「招聘iOS程式設計師,要求擁有5年的Swift語言開發經驗」。
  • 腦科學方向|Python3的安裝與環境搭建
    Hello,這裡是行上行下,我是喵君姐姐~上一節介紹了python語言在心理教育科研中的一些較為普遍的應用場景,並簡要概述了python語言的特性。本節來學習python3的安裝與環境搭建。考慮到大部分人的需求與原有經驗,之後的學習都會以 windows 10(64位) 作業系統為系統平臺,而不是Ubuntu 16等linux系統。
  • 利用Anaconda在Windows及Linux下搭建Python環境【手把手版】
    Python環境【手把手版】❞本文目錄一、同系列好文二、Anaconda在Windows下搭建Python環境    1、下載    2、安裝    3、添加python到環境變量    4、使用jupyter notebook 三、Anaconda在Linux
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言分支判斷語句
    物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型物聯網開發筆記——嵌入式開發之Linux系統中C語言常量第七節物聯網開發筆記——嵌入式開發之Linux系統中C語言變量第八節具體查看《嵌入式開發之Linux系統中C語言運算符》。B、表達式也可以是任意類型(包括整型、實型、字符型、指針類型),具體查看《嵌入式開發之Linux系統中C語言數據類型》。3)branch/if-else.c例子
  • 嵌入式——C語言 1day
    一、軟體:C語言 linux C++ QT   -> 4個階段    硬體: STM32 驅動           -> 2個階段二、什麼是嵌入式?嵌入式是一門軟硬接合的技術,軟體指的是代碼,例如:C語言程序。硬體指的是開發平臺,例如:ARM板 - A8/A9/A15/A53。
  • 學C語言還是學C+好?兩者有什麼區別?需要什麼開發環境?
    所以它們也可以廣義稱為C語言。 但是它們的程序設計哲學卻差別很大,C是問題來適應語言;C++是語言適應問題;所以也可以說是兩種語言。 至於先學C還是先學C++,專家也意見不一,主要是因為:相對打基礎來說,彙編無疑是重要的,但 畢竟太生澀,所以C是最好的選擇,而且不論何種語言,算法仍然是核心,而C最適合培養算法素養。
  • 零基礎Python入門教程 - 第三節 搭建Python開發環境
    今天教大家搭建自己的Python開發環境,Python作為跨平臺語言,目前支持Windows、Linux、Mac/OS系統,考慮到後兩個系統使用門檻高,而大家對Windows的使用相對不是那麼陌生,所以我們就以Windows環境為例進行講解。
  • 剖析C語言中a=a+++a的無聊問題
    這種純屬C語言 「二」 級的問題應該是從a+++a引申出來的吧。於是乎兄弟姐妹們開始討論它的運算結果,以及改如何理解。更有人寫出(a++)+(++a) a+(++(++a)) ((a++)++)+a這樣的東西,問應該如何計算。我表示鴨梨很大...
  • Linux 系統內核的調試
    2.3.在VMware中搭建調試環境  kgdb調試環境需要使用兩臺微機分別充當development機和target機,使用VMware後我們只使用一臺計算機就可以順利完成kgdb調試環境的搭建。以windows下的環境為例,創建兩臺虛擬機,一臺作為開發機,一臺作為目標機。