linuxc語言環境
!!!
(1)打開Linux虛擬機在桌面創建一個文件夾,在文件夾裡面創建一個以.c或者.cpp為後綴的文件
(2)把你的源程序敲在你的.c/.cpp文件裡面,保存!
(3)ctrl+alt+t 同時按住打開終端
(4)輸入cd 然後把你在第一步創建的文件夾拖到終端里,你就會得到「cd 這個文件夾的位置」
(5)把文件路徑的引號刪掉,回車後你就會發現讀到這個文件夾裡面了
(6)然後輸入gcc 文件全名(g++ 文件全名)例如:gcc a.c 然後運行
這時如果你沒有安裝編譯器,終端上會提示你!!會提示你!會提示你!就像下面這樣
然後你復制自己的提示運行就可以了,安裝會要你輸入密碼,輸入的時候是沒有符號提示的!輸入了就回車等下載好就可以
(7)然後會在你的文件夾里生成一個名為a.out的文件
(8)輸入./a.out就可以執行了!
『貳』 怎麼在Redhat linux下搭建C編程環境
要想在Linux下進行C語言編程,首先得搭建好一個編程環境。這里分別說明一下幾個非常有用的軟體包。
如果你對Linux下軟體安裝方法還不清楚,請參考文章「Linux下軟體安裝方法總結」http://zhoulifa.bokee.com/5444771.html
1、gcc
要進行C語言編程,首先得有個C語言的編譯器,Linux下常用的是GNU C Compiler gcc。
gcc軟體是用來提供默認值的。從Depends可以看出要gcc真正工作必須有對應的cpp和gcc版本。
比如cpp-4.1和gcc-4.1、cpp-3.3和gcc-3.4
2、gcc-*
3、cpp
gcc要進行程序編譯,首先需要進行一個預編譯過程。該過程對程序源代碼進行預處理。
4、cpp-*
5、libgcc1
gcc還依賴於libgcc1這個軟體包。libgcc1是用於gcc軟體自身的必須組件。
6、libc6
C語言程序要能夠運行,需要一些運行時庫文件和一些庫文件操作命令。libc6這個軟體包就是用來提供這些的。這個軟體包幾乎是Linux系統自帶的,因為所有C程序的運行都離不開此軟體包。
7、binutils
程序從源代碼到可執行程序的過程中,必然需要一些工具來輔助完成。binutils軟體包就是提供一些工具的
這個軟體包提供下面這些非常有用的命令:
/usr/bin/size # 顯示每個目標文件或歸檔文件的章節大小和總的大小
/usr/bin/objmp # 顯示目標文件的信息
/usr/bin/ar # 歸檔文件管理工具,可以創建、修改或打開一個歸檔文件
/usr/bin/strings # 顯示一個文件中的可列印字元串,比如文本文件的全部或目標文件里的字元串
/usr/bin/ranlib # 產生歸檔文件的索引
/usr/bin/obj # 復制或轉換目標文件
/usr/bin/addr2line # 把一個地址信息轉換為文件名和行號
/usr/bin/readelf # 顯示 ELF 文件信息, ELF 文件格式即 Linux 目前流行的可執行文件格式
/usr/bin/nm # 顯示目標文件里的符號
/usr/bin/strip # 去除目標文件里的符號
/usr/bin/c++filt # 識別 C++ 和 Java 符號
/usr/bin/as # GNU 匯編工具
/usr/bin/gprof #
/usr/bin/ld # GNU 鏈接工具
8、locales
這個軟體包提供本地語言環境支持
雖然上面列了這么多必需的軟體包,但實際上因為他們之間有依賴關系,所以在安裝完系統後我們只需要輸入下面一個命令:
apt-get install gcc
系統就會自動幫忙把這些軟體包安裝上。
9、libc6-dev
我們要進行軟體開發,必然需要一些庫文件和頭文件,在Linux常用的就是GNU的C語言庫libc,要安裝開發工具必須安裝這個libc6-dev軟體包
11、glibc-doc-reference
理由同上,編程人員最喜歡的參考手冊就是這個軟體包了,可以稱為Linux下C語言編程參考。
此參考手冊有html和info兩種格式,你可以用瀏覽器打開/usr/share/doc/glibc-doc-reference/html目錄下的手冊一頁頁看。把這里每個網頁一點點看完了學會了基本上沒有搞不定的問題了。
12、manpages-dev
在編程的過程中有時會記不得某個函數的用法,通常這時查man手冊是比較快的,所以把這個manpages-dev軟體包安裝上。想要看某個函數的用法就man它。
這個軟體包提供系統調用和庫函數的在線手冊。
13、make
在進行大項目時,通常我們的程序可能是由很多源文件組成的,各個源文件生成自己的目標文件,多個目標文件才鏈接形成一個新的目標文件或可執行程序。
在某個源文件發生變化時,我們只需要按照這種依賴關系運行各命令重新生成程序即可,而不需要對所有源文件重新編譯。哪個該重新編譯呢?可以讓make程序幫忙 維護
14、make-doc
要運行make工具,先得學會怎麼用它吧?看這個軟體包提供的文檔就行了。
安裝好這個軟體包後,用瀏覽器打開/usr/share/doc/make-doc/make.html文檔開始學習make的用法吧。
15、gdb
編寫程序必然需要調試,在Linux常用的程序調試工具是gdb
16、gdb-doc
有了上面的gdb程序調試工具了,怎麼學會使用它呢?安裝這個軟體包gdb-doc,即gdb的文檔
安裝好軟體後就可以通過電腦上的文檔自學gdb的使用了。
17、編輯器
要編寫C程序,總得有個編輯工具吧?Linux下這類工具相當多,關鍵在於熟練掌握一種。
比如文本界面的編輯器vi, vim, emacs等
比如圖形界面的編輯器gedit, kate, kwrite等
又比如IDE環境的:anjuta, eclipse, kdevelop等
選擇一個自己習慣的熟練使用起來就行了。
這些只是基本的Linux下C編程環境必須的軟體包。如果這些熟練掌握了,可以試試下面這些軟體包:
autoconf, automake1.9, libtool, flex, bison
當然還有對應的文檔用於自學。
甚至可以試試IDE環境下其它語言編程,比如gtk, qt等
『叄』 linux下c語言環境變數操作的幾個相關函數
這幾個函數的原型在<stdio.h>中定義
/* Return the value of envariable NAME, or NULL if it doesn't exist. */
extern char *getenv (__const char *__name) __THROW __nonnull ((1)) __wur;
/* The SVID says this is in <stdio.h>, but this seems a better place. */
/* Put STRING, which is of the form "NAME=VALUE", in the environment.
If there is no `=', remove NAME from the environment. */
extern int putenv (char *__string) __THROW __nonnull ((1));
/* Set NAME to VALUE in the environment.
If REPLACE is nonzero, overwrite an existing value. */
extern int setenv (__const char *__name, __const char *__value, int __replace)
__THROW __nonnull ((2));
/* Remove the variable NAME from the environment. */
extern int unsetenv (__const char *__name) __THROW __nonnull ((1));
『肆』 Linux環境下C開發_linux搭建c語言開發環境
一:C語言嵌入式Linux工程師的學習需要具備一定的C語言基礎,C語言是嵌入式領域最重要也是最主要的編程語言,通過大量編程實例重點理解C語言的基礎編程以及高級編程知識。包括:基本數據類型、數組、指針、結構體、鏈表、文件操作、隊列、棧等。
二:Linux基礎Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI,編譯器GCC,調試器GDB和Make項目管理工具,ShellMakefile腳本編寫等知識,嵌入式開發環境的搭建。
三:Linux系統編程重點學習標准I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。
四:Linux網路編程計算機網路在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,全面了解Linux網路應用程序開發。重點學習網路編程相關API,熟練掌握TCP協議伺服器的編程方法和並發伺服器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網路通信系統的設計,熟悉HTML,Javascript等Web編程技術及實現方法。
五:數據結構與演算法數據結構及演算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯旅瞎性。此階段的學習要重點理解數據結構與演算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序演算法等應用及其C語言實現過程。
六:C、QTC是Linux應用開發主要語言之一,本階段重點掌握面向對象編程的基本思想以及C的重要內容。圖形界面編程是嵌入式開發中非常重要的一個環節。由於QT具有跨平台、面向對象、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領域的GUI開發中得到了廣范的應用,在本階段通過基於QT圖形庫的學習使學員可以熟練編寫GUI程序,並移植QT應用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息與槽機制的應用、滑鼠、鍵盤及繪圖事件處理及文件處理的應用。
七:CortexA8、Linux平台開發通過基於ARMCortex-A8處理s5pv210了解晶元手冊的基本閱讀技巧,掌握s5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nandflash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。
八:驅動開發拆顫空驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階洞租段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARMCortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。
以上就是列出的關於一名合格嵌入式Linux開發工程師所必學的理論知識,其實,作為一個嵌入式開發人員,專業知識和項目經驗同樣重要,所以在我們的理論學習中也要有一定的項目實踐,鍛煉自己的項目開發能力。
『伍』 如何在linux環境下編輯一個c語言源程序並將其編譯為可執行文件
打開安裝好的Linux系統(ubuntu18.04)
1.安裝編輯器
使用語句:sudo apt-get install vim安裝vim,可以在安裝前查看是否安裝vim編輯器。(特別提示:在安裝vim前最好將軟體更新,使用指令sudo apt-get update.)之所以要加sudo的原因是這些安裝和更新軟體的時候需要使用管理員許可權才可以進行。
2.安裝gcc編譯器
和安裝vim類似使用sudo apt-get install gcc,安裝完成後可以使用cc-v來查看編譯器版本信息等。cc -v界面如下:
『陸』 Linux下安裝和配置C語言開發環境
修改 /etc目錄下的bashrc文件或profile文件
sudo vi /etc/bashrc
文件末尾添加
export PATH=GCC所在路徑:$PATH
保存退出
執行 . 空格 /etc/bashrc
再試試
PATH 是個環境變數,Windows下也有類似的東西