在Linux下編譯C或C++程序的教程
從開始學習C/C++我們都在是windows下,那么如何(怎樣)在linux中編譯C/C++代碼?在linux終端下(命令行中)編譯譯C/C++代碼?
在任何linux分支下編譯C/C++代碼,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支上,我們需要安裝一下軟件包:
1.GNU C and C++ compiler collection
2.Development tools
3.Development libraries
4.IDE or text editor to write programs
第一步:安裝 C/C++ 編譯器和相關工具包
如果你是使用Fedora, Red Hat, CentOS, or Scientific Linux,可以使用yum命令快速安裝GNU c/c++ 編譯器:
[root@dabu.info ]# yum groupinstall 'Development Tools'
[dabu@dabu.info ]$ sudo apt-get update [dabu@dabu.info ]$ sudo apt-get install build-essential manpages-dev
輸入以下命令,顯示編譯器版本和安裝的文件夾:
[dabu@dabu.info ]$ whereis gcc [dabu@dabu.info ]$ which gcc [dabu@dabu.info ]$ gcc --version
輸出如下圖:
如何(怎樣)在linux中編譯C/C++代碼
創(chuàng)建一個demo.c文件,使用vi ,emacs 或者 joe 將下列c源代碼輸入進去:
#include<stdio.h> /* demo.c: My first C program on a Linux */ int main(void) { printf("Hello! This is a test prgoram.\n"); return 0; }
接著進行編譯:
編譯的使用語法如下:
[dabu@dabu.info ]$ gcc program-source-code.c -o executable-file-name
或者
[dabu@dabu.info ]$ cc program-source-code.c -o executable-file-name
解釋:program-source-code.c是C源代碼,executable-file-name是編譯后得到的可執(zhí)行文件
又或者
[dabu@dabu.info ]$ make executable-file-name #假設executable-file-name.c 這個文件存在 ##
下面以demo.c舉例來將demo.c編譯成可執(zhí)行文件:
輸入:
[dabu@dabu.info ]$ cc demo.c -o demo
或者
[dabu@dabu.info ]$ make demo #假設demo.c在當前文件夾下存在
如果你的C/C++源代碼沒有錯誤,編譯器就會編譯成功同時在當前目錄下創(chuàng)建一個叫做demo的可執(zhí)行文件。否則,源代碼有錯誤,你需要修正后重新編譯。輸入下面的命令來確認生成了可執(zhí)行文件:
[dabu@dabu.info ]$ ls -l demo*
如何(怎樣)在linux上運行或者執(zhí)行這個叫做demo的可執(zhí)行文件
輸入以下命令:
[dabu@dabu.info ]$ ./demo
或者
[dabu@dabu.info ]$ /path/to/demo #即demo文件的絕對路徑
會話過程如下圖:
編譯和運行一個簡單的C++程序
創(chuàng)建一個文件名為demo2 ,將下面的代碼保存到該文件中;
#include "iostream" // demo2.C - Sample C++ prgoram int main(void) { std::cout << "Hello! This is a C++ program.\n"; return 0; }
編譯demo2.c ,輸入:
[dabu@dabu.info ]$ g++ demo2.C -o demo2
或者
[dabu@dabu.info ]$ make demo2
運行得到的可執(zhí)行文件,輸入:
[dabu@dabu.info ]$ ./demo2
如何(怎樣)生成為GDB調試信息和警告信息?
C 使用以下語法;
[dabu@dabu.info ]$ cc -g -Wall input.c -o executable
解釋:-Wall表示生成所有警告信息。-g表示生成調試信息
C++使用以下語法:
[dabu@dabu.info ]$ g++ -g -Wall input.C -o executable
如何(怎樣)在linux上得到優(yōu)化代碼?
C 使用以下語法:
[dabu@dabu.info ]$ cc -O input.c -o executable
解釋: -O(大寫的O)表示優(yōu)化代碼,編譯后得到的文件比沒優(yōu)化的小些,執(zhí)行可能更快
C++使用以下語法:
[dabu@dabu.info ]$ g++ -O -Wall input.C -o executable
如何(怎樣)使用數(shù)學函數(shù)的C語言程序呢?
要增加 -lm參數(shù)讓gcc與數(shù)學函數(shù)庫連接:
[dabu@dabu.info ]$ cc myth1.c -o executable -lm
解釋:-l參數(shù)就是用來指定程序要鏈接的庫,-l參數(shù)緊接著就是庫名,比如數(shù)學庫,他的庫名是m,他的庫文件名是libm.so,很容易看出,把庫文件名的頭lib和尾.so去掉就是庫名。
如何(怎樣)編譯一個使用Xlib 圖形函數(shù)的C++程序?
[dabu@dabu.info ]$ g++ fireworks.C -o executable -lX11
解釋:X11表示Xlib庫
如何(怎樣)編譯多個源文件生成可執(zhí)行程序 ?
假設要同時編譯light.c, sky.c, fireworks.c 這3個C語言源文件,輸入:
[dabu@dabu.info ]$ cc light.c sky.c fireworks.c -o executable
C++同時編譯c.C bc.C file3.C 3個源代碼文件,輸入:
[dabu@dabu.info ]$ g++ ac.C bc.C file3.C -o my-program-name
上一篇:C++學習小結之數(shù)據(jù)類型及轉換方式
欄 目:C語言
下一篇:C語言實現(xiàn)在windows服務中新建進程的方法
本文標題:在Linux下編譯C或C++程序的教程
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3006.html
您可能感興趣的文章
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 01-10APUE筆記之:進程環(huán)境詳解
- 01-10c++中inline的用法分析
- 01-10大數(shù)(高精度數(shù))模板(分享)
- 01-10深入理解堆排序及其分析
- 01-10深入C/C++浮點數(shù)在內存中的存儲方式詳解
- 01-10深入解析Linux下\r\n的問題
- 01-10Linux線程管理必備:解析互斥量與條件變量的詳解
- 01-10Linux C 獲取進程退出值的實現(xiàn)代碼


閱讀排行
本欄相關
- 04-02c語言函數(shù)調用后清空內存 c語言調用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調用函數(shù)求fibo C語言調用函數(shù)求
隨機閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10C#中split用法實例總結
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-11ajax實現(xiàn)頁面的局部加載