**
熟悉了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,即可執行程式。
django建立乙個工程
1.建立乙個工程 django admin.py startproject 工程名 django admin.py是安裝django時自動帶的檔案,在 usr local bin下,建立工程時使用 2 工程目錄結構 init py表示這是乙個包 wsgi.py檔案是介面標準用來與伺服器互動,有的版本...
建立乙個VUE工程
安裝步驟傻瓜式安裝。使用node v和npm v 如果能顯示出對應的版本則說明安裝成功 node一般自帶npm但是不是最新版本的npm如果要使用最新npm install g npm。1.第一步安裝vue手腳架 vue cli cnpm install vue cli g 全域性安裝 vue cli...
C語言在Linux下建立乙個殭屍程序
第三章程式設計題3.12 每乙個程序都有乙個pcb 程序控制塊 其中包含程序執行的狀態等一系列資訊。當父程序fork 出乙個子程序,子程序執行結束後作業系統會 子程序使用的記憶體 開啟的檔案等資源。但是,依舊會保留pcb,因為其中包含子程序結束時的狀態等資訊,按理來說作業系統想把這個資訊傳遞給它的父...