哎呀,以后還是要遵循一條原則:知之為知之,不知google之。 后來我去找了一下,這個錯誤是因為用錯了命令所致的,在linux中對C++的應用g++進行編譯,順便貼一下一個博客中的內容
Linux C++ 自學筆記
作者:未知 來源:
http://www.51one.net (2005-03-21 13:39:10)
Linux C++ 自學筆記
1、安裝系統
這就不用說了吧,我裝的是Redhat Linux 7.2,安裝過程智能化,價格也不貴(
9CD+500頁手冊共69RMB),大家也都支持支持正版,還有一些簡單命令
ls - 列目錄
cd - 進入目錄
man - 幫助
gcc - 編譯器
2、文本編輯器
開如想用vi,發現不太好用,在圖形界面下找了個Advanced Editor,當文件存為.c或
.cpp后,關鍵字自動以不同顏色顯示(呵呵,比windows的帥多了),支持縮格^I,趕
快加入Favorites,菜單位置在KDE menus->Editors->Advanced Editor
3、編譯C-“Hello world!”
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
存盤為Hello.c
在命令行下輸入:gcc Hello.c -o hello (要注意大小寫哦)
編譯時可能有如下警告:
no newline at end of file
在文件最后補一個新行即可
執行文件:./hello
呵呵,Hello world!可愛的字眼就出來了
4、編譯C++ -“Hello world!”
#include <iostream.h>
int main()
{
cout << "Hello world!\n" << endl;
return 0;
}
編譯出錯: undefined reference to ''cout''
呀!怎么連cout都不認識,趕快查查,看man怎么說:
man gcc
哦,原來要用g++編譯C++程序
g++ Hello.cpp -o hello
5、編譯類
有三個文件:Hello.h、Hello.cpp、MyFirst.cpp,內容如下:
file://Hello.h
#ifndef HelloH
#define HelloH
class Hello
{
Hello();
void Display();
}
file://Hello.cpp
#include "Hello.h"
#include <iostream.h>
Hello::Hello()
{
}
Hello::Display()
{
cout << "Hello world!\n" << endl;
}
file://MyFirst.cpp
#include <iostream.h>
#include "Hello.h"
int main()
{
Hello theHello;
theHello->Display();
return 0;
}
開始編譯:g++ MyFirst.cpp -o MyFirst
呀,出錯:
undefined reference to ''Hello::Hello(void)''
undefined reference to ''Hello::Display()''
呵,看來是不能鏈接Hello.cpp出錯,先改一下
在MyFirst.cpp中:將#include "Hello.h"改為#include "Hello.cpp"
編譯通過,在查查幫助,有參數 -c 可以只編譯不鏈接
呵呵,天黑了,玩把帝國,晚上看看書,明天再接著來。