Linux下在terminal运行c++程序的问题。用gcc编译器

已经知道对单独的cpp文件。在终端输入g++filename-ofilename就可以生成.o的文件。那么对已经写好的一个程序,包含多个源文件的应该如何运行?比如一个随机... 已经知道对单独的cpp文件。在终端输入g++ filename -o filename就可以生成.o的文件。那么对已经写好的一个程序,包含多个源文件的应该如何运行?比如一个随机数类,有random.cpp random.h test.cpp这3个文件 展开
 我来答
百度网友e989087
2012-08-16 · TA获得超过111个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:62.2万
展开全部
多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test
以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

参考资料: http://www.cppblog.com/liangyi/archive/2008/04/02/45986.aspx?opt=admin

rockrush
2012-08-16 · TA获得超过2092个赞
知道小有建树答主
回答量:1111
采纳率:100%
帮助的人:1031万
展开全部
写个Makefile,内容如下:
all: test
test: random.o test.o
random.o: random.h # 假设random.h内容被random.cpp用到

就可以了,如果g++在PATH变量下面,就可以直接打make来编译了。一般对于多个文件的程序,都会选用类似make、scons这些构建工具来简化编译过程的,甚至还会用autotools来简化Makefile的编写。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chris8567
2012-08-16 · TA获得超过2778个赞
知道大有可为答主
回答量:1478
采纳率:0%
帮助的人:733万
展开全部
比较好的方法是使用makefile. 首先安装make工具, 运行make -v, 如果正常返回版本信息就说明已经装好了。
然后在代码的目录里新建一个名为makefile的文本文件, 内容:

# makefile for test
all: test
CC=g++
test: test.o random.o
$(CC) test.o random.o -o test

random.o: random.cpp random.h
$(CC) -c random.cpp

test.o: test.cpp
$(CC) -c test.cpp

clean:
rm -rf test *.o

# end of makefile
然后在代码目录运行make就自动编译了。 make会自己检测源文件的时间戳,在最后一次编译之后修改过的项目才会被再次编译。
运行make clean, 就可以把编译生成的文件全部清除。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想了一半个小时
2012-08-16 · 超过28用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:66.1万
展开全部
g++ random.cpp test.cpp -o
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式