在Linux平台下如何編譯乙個C 工程

2021-05-01 15:06:53 字數 2114 閱讀 4741

熟悉了windows平台下編譯乙個c++工程後,你是否會提出這樣乙個問題:在linux平台下又如何編譯乙個c++工程呢?

希望本文能給正在學習或想學習linux c++開發的你起到拋磚引玉的作用。

首先,你必須有乙個linux開發環境,這樣才能進行c++開發。筆者用的是安裝在虛擬機器中的ubuntu 9.04,ubuntu作業系統是沒帶c++編譯器g++。在連網的情況下,在終端中使用root超級使用者許可權輸入以下命令:

sudo apt-get install g++

並回車即可安裝c++編譯器g++。

安裝完畢,即可開始新建我們的乙個c++工程了。下面以乙個hello工程為例,簡單地介紹如何編譯乙個 c++工程。

登入linux系統,開啟終端,在當前目錄下使用mkdir命令新建乙個hello的目錄;然後使用cd hello進入hello目錄中,並使用vi工具新建hello.h、hello.cpp、main.cpp、makefile四個檔案。四個檔案的內容分別如下:

1. hello.h檔案

/*

* hello.h

*

*  created on: 2009-6-27

*      author: young

*/

#ifndef hello_h_

#define hello_h_

class hello ;

#endif /* hello_h_ */

2. hello.cpp檔案

#include "hello.h"

#include

using namespace std;

void hello::print()

注意:這三個檔案要以空白行結束,否則編譯時會有警告資訊。

4. makefile檔案

# this is a makefile of the c++ project hello

# the standard c++ compiler in the redhat linux is g++

# written by young on june 27th, 2009

target = .

cc = g++

cflags = -g

cflagc = -c

mainc = main.cpp

hello = hello.cpp

obj = hello.o

include = -i$(target)

exec = $(target)/main

all: $(exec)

$(exec): $(obj) $(mainc)

$(cc) $(cflags) $(obj) $(mainc) $(include) -o $@

rm -f $(obj)

@echo "<<<<<< $@ is created successfully! >>>>>>"

$(obj): $(hello)

$(cc) $(cflagc) $(hello) -o $@

clean:

rm -f $(exec)

注意: makefile檔案中的命令列(紅色字型)一定要以tab建開頭,否則編譯通不過。

寫好makefile檔案後,即可編譯工程。在終端中輸入make命令,回車後將顯示如下資訊:

g++ -c hello.cpp -o hello.o

g++ -g hello.o main.cpp -i. -o main

rm -f hello.o

<<<<<< main is created successfully! >>>>>>

這些資訊說明工程已被正確編譯,當前目錄下將生成乙個main的可執行檔案。

同樣,你也可以不使用makefile檔案,而直接在終端上輸入以下兩行命令:

g++ -c hello.cpp -o hello.o

g++ -g hello.o main.cpp -i. -o main

也可以編譯這個工程。

使用ls -l命令檢視當前目錄下的所有檔案,確實有乙個main檔案。

在終端中輸入./main,即可執行程式。

在window平台下編譯ffmpeg

mingw是什麼?mingw是建立在gcc和binutils專案上的,用來編譯和連線 使之執行在windows系統上 提供c c 和fortran編譯器和相關工具 mingw minimalist gnu for windows mingw使用微軟的執行庫,生成windows下的 因為不使用gnu ...

WebKit 在 Windows 平台下編譯小結

webkit 是世界公認的優秀的開源瀏覽器核心。具有渲染速度快,靈活可定製,多平台支援等優點。國內知名的maxthon 和 ucweb 都將webkit選作瀏覽器核心。谷歌公司和蘋果公司也分別在webkit 基礎上只做了chrome 瀏覽器和safari 瀏覽器。雖然webkit 已經越來越多的被廣...

WebKit 在 Windows 平台下編譯小結

雖然webkit 已經越來越多的被廣大程式設計師接受,但其編譯過程卻非常之痛苦。下面將我編譯webkit 的經驗與大家分享。獲取webkit 源 webkit 源 在本文寫作時,版本是r52221webkit 編譯環境的搭建 webkit 有一篇文章說明了一下webkit 在windows 平台下的...