哎呀,以后还是要遵循一条原则:知之为知之,不知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 可以只编译不链接
呵呵,天黑了,玩把帝国,晚上看看书,明天再接着来。