ubuntu+eclipse+CDT环境的helloworld程序例子(standard make C++ project)

创建一个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

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>