網頁

2013年3月7日 星期四

準備 C/C++ 的編譯環境 on Ubuntu

剛安裝好的 Ubuntu 是不能編譯 C/C++ 的 code 的, 至少 12.10 是不行的. 可以輸入以下的 command 來確認.
 
$ g++ -v 
 
以下說明 C/C++ 的編譯環境的安裝, 測試及建議

Install C/C++ Compile environment

首先, 先來安裝一個更簡化的套件管理程式
$ sudo apt-get install aptitude
 
接下來, 用它來安裝開發環境
$ sudo aptitude install build-essential
 
安裝過程會出現版本衝突, 一定要輸入 Yes 才能繼續.
完成後, 再測試一遍版本訊息
 
$ g++ -v
應該會出現和下面類似的畫面.

 
這樣就完成了. 

編譯及執行 C program

建立一個自己的工作目錄,

 
啟動 gedit, 輸入以下程式:
 
$ gedit test01.c

#include <stdio.h>

int main()

{

printf(“Hello World!\r\n”);

}

編譯它

 
$ gcc test01.c
 
如果沒有錯誤訊息, 可以 ls -al 看一下, 看看是不是有一個 a.out 的可執行的檔案.
 

執行它

$ ./a.out
 
由於工作目錄並不在 shell 的搜尋路徑中, 如果不指定當前目錄, 會遇到 command not found 的錯誤.
 

再編譯它一次

這次增加一些參數

$ gcc -ansi -pedantic-errors -Wall  test01.c

結果邊譯失敗, 發生錯誤. 這個程式其實有一個問題, main 定義為回傳 int 型別, 但是程式中並沒有 return. 如果不指定 ansi 相容的標準, 錯誤和警告的等級, 可以編譯成功. 但是這就會在未來多產生一些不確定的問題. 建議善用編譯器的檢查機制. 不過每次這樣寫, 真的也是很煩人, 我們把它放到 script 去, 會省事一些.

編輯 script

$ gedit gccp

輸入以下內容:

#/bin/sh

echo compiling C++ using -ansi -pedantic-errors -Wall

gcc -ansi -pedantic-errors -Wall $1 $2 $3


存檔後, 增加執行的屬性
$ chmod +x gccp

放到 usr/local/bin. 注意看一下, 如果沒有自己放˙檔案進去, 這個目錄會是空的. 這個目錄的用意, 就是存放一些 local ( 本機電腦 ) 自行添加的程式, 所以也在 shell 的 預設搜尋路徑中. 但是寫入是需要 root 的權限的.

* 建議儘量把自己寫的程式放在這邊

$ sudo cp gccp /usr/local/bin

修正程式, 並重新 compile 執行.

$ gccp test01.c
$ ./a.out

編譯及執行 C++ program

啟動 gedit, 輸入以下程式:

$ gedit test01.cpp

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}


編輯 C++ 的編譯 script, 同樣放到 /usr/local/bin

由於有點混淆, 我會用 gccpp, 作為 script 的名稱
 
#/bin/sh echo compiling C++ using -ansi -pedantic-errors -Wall g++ -ansi -pedantic-errors -Wall $1 $2 $3

沒有留言:

張貼留言

請提供您寶貴的意見