欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Linux下編譯C或C++程序的教程

 更新時(shí)間:2021年04月11日 10:29:10   投稿:goldensun  
這篇文章主要介紹了在Linux下編譯C或C++程序的教程,是C/C++入門(mén)學(xué)習(xí)中的必備知識(shí),需要的朋友可以參考下

從開(kāi)始學(xué)習(xí)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++ 編譯器和相關(guān)工具包

如果你是使用Fedora, Red Hat, CentOS, or Scientific Linux,可以使用yum命令快速安裝GNU c/c++ 編譯器:

[root@dabu.info ]# yum groupinstall 'Development Tools'

如果你是使用 Debian , Ubuntu Linux ,則輸入apt-get命令來(lái)安裝裝GNU c/c++ 編譯器;

[dabu@dabu.info ]$ sudo apt-get update
[dabu@dabu.info ]$ sudo apt-get install build-essential manpages-dev

第二步:確認(rèn)是否安裝成功

輸入以下命令,顯示編譯器版本和安裝的文件夾:

[dabu@dabu.info ]$ whereis gcc
[dabu@dabu.info ]$ which gcc
[dabu@dabu.info ]$ gcc --version

輸出如下圖:

201573111516565.jpg (598×257)

如何(怎樣)在linux中編譯C/C++代碼

創(chuàng)建一個(gè)demo.c文件,使用vi ,emacs 或者 joe 將下列c源代碼輸入進(jìn)去:

  #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;
  }

接著進(jìn)行編譯:

編譯的使用語(yǔ)法如下:

[dabu@dabu.info ]$  gcc program-source-code.c -o executable-file-name

或者

[dabu@dabu.info ]$    cc program-source-code.c -o executable-file-name

解釋?zhuān)簆rogram-source-code.c是C源代碼,executable-file-name是編譯后得到的可執(zhí)行文件

又或者

[dabu@dabu.info ]$   make executable-file-name  #假設(shè)executable-file-name.c 這個(gè)文件存在 ##

下面以demo.c舉例來(lái)將demo.c編譯成可執(zhí)行文件:
輸入:

[dabu@dabu.info ]$   cc   demo.c  -o demo

或者

[dabu@dabu.info ]$   make demo  #假設(shè)demo.c在當(dāng)前文件夾下存在

如果你的C/C++源代碼沒(méi)有錯(cuò)誤,編譯器就會(huì)編譯成功同時(shí)在當(dāng)前目錄下創(chuàng)建一個(gè)叫做demo的可執(zhí)行文件。否則,源代碼有錯(cuò)誤,你需要修正后重新編譯。輸入下面的命令來(lái)確認(rèn)生成了可執(zhí)行文件:

[dabu@dabu.info ]$    ls -l demo*

如何(怎樣)在linux上運(yùn)行或者執(zhí)行這個(gè)叫做demo的可執(zhí)行文件

輸入以下命令:

[dabu@dabu.info ]$    ./demo

或者

[dabu@dabu.info ]$   /path/to/demo  #即demo文件的絕對(duì)路徑

會(huì)話過(guò)程如下圖:

201573112302266.gif (567×339)

編譯和運(yùn)行一個(gè)簡(jiǎn)單的C++程序

創(chuàng)建一個(gè)文件名為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

運(yùn)行得到的可執(zhí)行文件,輸入:

[dabu@dabu.info ]$   ./demo2

如何(怎樣)生成為GDB調(diào)試信息和警告信息?

C 使用以下語(yǔ)法;

[dabu@dabu.info ]$   cc -g -Wall input.c -o executable

解釋?zhuān)?Wall表示生成所有警告信息。-g表示生成調(diào)試信息

C++使用以下語(yǔ)法:

[dabu@dabu.info ]$   g++ -g -Wall input.C -o executable

如何(怎樣)在linux上得到優(yōu)化代碼?

C 使用以下語(yǔ)法:

[dabu@dabu.info ]$   cc -O input.c -o executable 

解釋?zhuān)?-O(大寫(xiě)的O)表示優(yōu)化代碼,編譯后得到的文件比沒(méi)優(yōu)化的小些,執(zhí)行可能更快

C++使用以下語(yǔ)法:

[dabu@dabu.info ]$   g++ -O -Wall input.C -o executable

如何(怎樣)使用數(shù)學(xué)函數(shù)的C語(yǔ)言程序呢?

要增加 -lm參數(shù)讓gcc與數(shù)學(xué)函數(shù)庫(kù)連接:

[dabu@dabu.info ]$  cc myth1.c -o executable -lm

解釋?zhuān)?l參數(shù)就是用來(lái)指定程序要鏈接的庫(kù),-l參數(shù)緊接著就是庫(kù)名,比如數(shù)學(xué)庫(kù),他的庫(kù)名是m,他的庫(kù)文件名是libm.so,很容易看出,把庫(kù)文件名的頭lib和尾.so去掉就是庫(kù)名。
如何(怎樣)編譯一個(gè)使用Xlib 圖形函數(shù)的C++程序?

[dabu@dabu.info ]$  g++ fireworks.C -o executable -lX11

解釋?zhuān)篨11表示Xlib庫(kù)
如何(怎樣)編譯多個(gè)源文件生成可執(zhí)行程序 ?

假設(shè)要同時(shí)編譯light.c, sky.c, fireworks.c 這3個(gè)C語(yǔ)言源文件,輸入:

[dabu@dabu.info ]$  cc light.c sky.c fireworks.c -o executable

C++同時(shí)編譯c.C bc.C file3.C 3個(gè)源代碼文件,輸入:

[dabu@dabu.info ]$  g++ ac.C bc.C file3.C -o my-program-name

相關(guān)文章

  • C++ DLL實(shí)現(xiàn)循環(huán)播放音樂(lè)的示例詳解

    C++ DLL實(shí)現(xiàn)循環(huán)播放音樂(lè)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了C++ DLL實(shí)現(xiàn)循環(huán)播放音樂(lè)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下
    2024-03-03
  • C++通過(guò)類(lèi)實(shí)現(xiàn)線性表

    C++通過(guò)類(lèi)實(shí)現(xiàn)線性表

    這篇文章主要為大家詳細(xì)介紹了C++通過(guò)類(lèi)實(shí)現(xiàn)線性表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C++如何獲取本機(jī)的IP地址

    C++如何獲取本機(jī)的IP地址

    這篇文章主要為大家詳細(xì)介紹了C++如何獲取本機(jī)IP地址小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • OpenGL通過(guò)中點(diǎn)法繪制直線和圓

    OpenGL通過(guò)中點(diǎn)法繪制直線和圓

    這篇文章主要為大家詳細(xì)介紹了OpenGL通過(guò)中點(diǎn)法繪制直線和圓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語(yǔ)言一看就懂的指針與結(jié)構(gòu)體介紹

    C語(yǔ)言一看就懂的指針與結(jié)構(gòu)體介紹

    指針提供了對(duì)地址操作的一種方法,因此,使用指針可使得C語(yǔ)言能夠更高效地實(shí)現(xiàn)對(duì)計(jì)算機(jī)底層硬件的操作。另外,通過(guò)指針可以更便捷地操作數(shù)組。C數(shù)組允許定義可存儲(chǔ)相同類(lèi)型數(shù)據(jù)項(xiàng)的變量,結(jié)構(gòu)是C編程中另一種用戶自定義的可用的數(shù)據(jù)類(lèi)型,它允許您存儲(chǔ)不同類(lèi)型的數(shù)據(jù)項(xiàng)
    2022-04-04
  • C++ 中回文數(shù)判斷簡(jiǎn)單實(shí)例

    C++ 中回文數(shù)判斷簡(jiǎn)單實(shí)例

    這篇文章主要介紹了C++ 中回文數(shù)判斷簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C語(yǔ)言下快速排序(挖坑法)詳解

    C語(yǔ)言下快速排序(挖坑法)詳解

    大家好,本篇文章主要講的是C語(yǔ)言下快速排序(挖坑法)詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)掃雷游戲

    C語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解如何在code block創(chuàng)建一個(gè)C語(yǔ)言的項(xiàng)目

    詳解如何在code block創(chuàng)建一個(gè)C語(yǔ)言的項(xiàng)目

    這篇文章主要介紹了詳解如何在code block創(chuàng)建一個(gè)C語(yǔ)言的項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 巧妙使用RAII中的ScopeExit

    巧妙使用RAII中的ScopeExit

    Resource Acquisition Is Initialization,資源獲取即初始化,將資源的生命周期與一個(gè)對(duì)象的生命周期綁定,這篇文章主要介紹了巧妙使用RAII中的ScopeExit,需要的朋友可以參考下
    2021-05-05

最新評(píng)論