程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 在Linux下編譯C或C++法式的教程

在Linux下編譯C或C++法式的教程

編輯:關於C++

在Linux下編譯C或C++法式的教程。本站提示廣大學習愛好者:(在Linux下編譯C或C++法式的教程)文章只能為提供參考,不一定能成為您想要的結果。以下是在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++ 編譯器:

[[email protected] ]# yum groupinstall 'Development Tools'

假如你是應用 Debian , Ubuntu Linux ,則輸出apt-get敕令來裝置裝GNU c/c++ 編譯器;
[[email protected] ]$ sudo apt-get update
[[email protected] ]$ sudo apt-get install build-essential manpages-dev
第二步:確認能否裝置勝利

輸出以下敕令,顯示編譯器版本和裝置的文件夾:

[[email protected] ]$ whereis gcc
[[email protected] ]$ which gcc
[[email protected] ]$ gcc --version

輸入以下圖:

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

創立一個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;
  }

接著停止編譯:
編譯的應用語法以下:

[[email protected] ]$  gcc program-source-code.c -o executable-file-name

或許

[[email protected] ]$    cc program-source-code.c -o executable-file-name

說明:program-source-code.c是C源代碼,executable-file-name是編譯後獲得的可履行文件

又或許

[[email protected] ]$   make executable-file-name  #假定executable-file-name.c 這個文件存在 ##

上面以demo.c舉例來將demo.c編譯成可履行文件:
輸出:

[[email protected] ]$   cc   demo.c  -o demo

或許

[[email protected] ]$   make demo  #假定demo.c在以後文件夾下存在

假如你的C/C++源代碼沒有毛病,編譯器就會編譯勝利同時在以後目次下創立一個叫做demo的可履行文件。不然,源代碼有毛病,你須要修改後從新編譯。輸出上面的敕令來確認生成了可履行文件:

[[email protected] ]$    ls -l demo*

若何(如何)在linux上運轉或許履行這個叫做demo的可履行文件

輸出以下敕令:

[[email protected] ]$    ./demo

或許

[[email protected] ]$   /path/to/demo  #即demo文件的相對途徑

會話進程以下圖:

編譯和運轉一個簡略的C++法式

創立一個文件名為demo2 ,將上面的代碼保留到該文件中;

  #include "iostream"
  // demo2.C - Sample C++ prgoram
  int main(void)
  {
  std::cout << "Hello! This is a C++ program.\n";
  return 0;
  }

編譯demo2.c ,輸出:

[[email protected] ]$    g++ demo2.C -o demo2

或許

[[email protected] ]$   make demo2

運轉獲得的可履行文件,輸出:

[[email protected] ]$   ./demo2

若何(如何)生成為GDB調試信息和正告信息?

C 應用以下語法;

[[email protected] ]$   cc -g -Wall input.c -o executable

說明:-Wall表現生成一切正告信息。-g表現生成調試信息

C++應用以下語法:

[[email protected] ]$   g++ -g -Wall input.C -o executable

若何(如何)在linux上獲得優化代碼?

C 應用以下語法:

[[email protected] ]$   cc -O input.c -o executable 

說明: -O(年夜寫的O)表現優化代碼,編譯後獲得的文件比沒優化的小些,履行能夠更快

C++應用以下語法:

[[email protected] ]$   g++ -O -Wall input.C -o executable

若何(如何)應用數學函數的C說話法式呢?

要增長 -lm參數讓gcc與數學函數庫銜接:

[[email protected] ]$  cc myth1.c -o executable -lm

說明:-l參數就是用來指定法式要鏈接的庫,-l參數緊接著就是庫名,好比數學庫,他的庫名是m,他的庫文件名是libm.so,很輕易看出,把庫文件名的頭lib和尾.so去失落就是庫名。
若何(如何)編譯一個應用Xlib 圖形函數的C++法式?

[[email protected] ]$  g++ fireworks.C -o executable -lX11

說明:X11表現Xlib庫
若何(如何)編譯多個源文件生成可履行法式 ?

假定要同時編譯light.c, sky.c, fireworks.c 這3個C說話源文件,輸出:

[[email protected] ]$  cc light.c sky.c fireworks.c -o executable

C++同時編譯c.C bc.C file3.C 3個源代碼文件,輸出:

[[email protected] ]$  g++ ac.C bc.C file3.C -o my-program-name

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved