在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