Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65517
  • 博文数量: 31
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 320
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-23 09:13
文章分类
文章存档

2011年(1)

2009年(30)

我的朋友

分类: LINUX

2009-05-23 20:04:55

创建一个C++ project,并添加好main.cc和main.h两个文件:
main.h

#ifndef MAIN_H_
#define MAIN_H_

char *gStrMyName = “adreaman”;
#endif /*MAIN_H_*/

main.cc

#include “main.h”
int main()
{
printf(”Hello world!I am %s\n”,gStrMyName);
return 0;
}

新建一个名为makefile的文件,make程序将使用这个文件定义的规则来build(编译、链接)出可执行文件:
makefile

all : helloworld
helloworld : main.o
gcc -o helloworld main.o

main.o : main.cc main.h
gcc -c main.cc

clean :
rm main.o

务必记得,依赖条件下面的那些命令行(也就是上面gcc -o, 或gcc -c 那些行)需要用tab键从行头隔一下,否则将在make时收到“makefile:1: *** 遗漏分隔符 。 停止”这样的错误报告。而依赖条件一定要顶格写。

make是以all这个依赖规则开始的,所以,一定要把最终的输出写在all规则中。

如果得到下面这个错误报告:

gcc -c xxx.cc
gcc: error trying to exec ‘cc1plus’: execvp: 没有该文件或目录

则说明C++编译器还没有安装好,用apt-get install或者新立德安装g++就可以了。
编译的时候出现“undefined reference to `__gxx_personality_v0′”错误,是因为编译 C++ 程序,需要链接 C++ 的函数库 libstdc++.a。加上-lstdc++选项就可以了:

all : helloworld

helloworld : main.o
gcc -o helloworld main.o -lstdc++

main.o : main.cc main.h
gcc -c main.cc -lstdc++

clean :
rm main.o

原文地址:

阅读(829) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~