LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 978|回复: 9

关于几个应用程序合并的问题

[复制链接]
发表于 2007-7-3 10:54:23 | 显示全部楼层 |阅读模式
现在我有两个应用程序program1和program2,他们分别有自己的main()函数,现在我想自己写一个应用程序,然后去调用那两个应用程序,让他们同时在我自己的应用程序中跑起来。
请问该怎么做?
发表于 2007-7-3 12:07:26 | 显示全部楼层
两次fork,exec
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-3 13:04:28 | 显示全部楼层
这个我知道,但是这样的话,那两个应用程序和我自己的应用程序是独立的,我想我的应用程序包含那两个。
回复 支持 反对

使用道具 举报

发表于 2007-7-3 14:28:23 | 显示全部楼层
把他的main改名,然后你调用他
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-3 15:25:16 | 显示全部楼层
这样我试过,但是链接的时候说找不到那个main函数的定义。我现在只能把所有的文件都放在一个目录下编译,太麻烦了,几千个文件。
回复 支持 反对

使用道具 举报

发表于 2007-7-3 16:26:26 | 显示全部楼层
-L指定库文件和.o文件所在目录阿
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-4 11:35:02 | 显示全部楼层
我也用-L指定了.o文件所在目录,还是不行

我的程序结构是这样的,根目录是我的应用程序和Makefile,在根目录里有两个目录(app1, app2)分别为两个应用程序,他们的main函数已经被我改为了main1和main2,生成的.o文件为main1.o,main2.o, 我在跟目录下的Makefile里link的时候添加了-Lapp1/ -Lapp2/.

然后编译,联结的时候还是会提示说"undefined reference to main1" "undefined reference to main2"
回复 支持 反对

使用道具 举报

发表于 2007-7-4 15:01:53 | 显示全部楼层
你有没有将main1.o main2.o传递给gcc呢?你这不是编译成库,而是object文件,所以指定-L是没有用的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-5 10:33:17 | 显示全部楼层
怎样传给gcc啊?要不要指定路径传?
回复 支持 反对

使用道具 举报

发表于 2007-7-5 11:23:42 | 显示全部楼层
gcc main.o main1.o main2.o -o main

基本原理就是这样的啊,随便一本讲gcc的或者讲make的书上都有的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表