全部博文(31)
分类: 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.omain.o : main.cc main.h
gcc -c main.ccclean :
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原文地址: