C++的菜鸟问题:入口函数 30

最近在看公司前辈编写的程序,在linux下写的几个.cpp文件中都没有main()入口函数,然后在makefile里通过g++编译成一个可执行文件,为公司开发的系统提供数... 最近在看公司前辈编写的程序,在linux下写的几个.cpp文件中都没有main()入口函数,然后在makefile里通过g++编译成一个可执行文件,为公司开发的系统提供数据处理的功能。这样的话,调用这项服务时,是以哪里作为入口呢?很奇怪。其中业务处理的.cpp文件里数据库连接、数据处理、上下游服务的连接都是不同的方法,互相基本也没什么调用。没有入口函数,程序会怎么执行呢? 展开
 我来答
qmg1023
2013-12-04 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:986万
展开全部
一个应用由n个cpp文件编译成n个.o,然后链接成一个程序,其中只有一个cpp中有main,不会每个cpp中都有main

main肯定有,但是只有一个
更多追问追答
追问
我确切看过所有的.cpp文件了,确实没有main函数,所以很奇怪程序的入口是哪里。因为编译链接成的程序是作为一项服务用的,可是没有入口函数,服务又怎么执行呢。而且所有的业务逻辑方法互相都没有调用,怎么完成服务的?真心纳闷
追答
程序会不会不完整?这部分代码会不会只是提供了一个库功能,即链接成一个libxxx.so或者libxxx.a?

既然有makefile,应该可以看到编译出来的东西吧?

如果都没有编译出来应用,那么这部分代码就不包含应用(即含main的cpp)
奥麦地道
2013-12-04
知道答主
回答量:29
采纳率:0%
帮助的人:13.8万
展开全部
是不是编译成动态链接库了,然后外部程序调用的这个库
另外一种可能是你们的代码引用的某些库里面带有main函数。比如boost的测试单元里面就自带入口函数,不需要自己写。
更多追问追答
追问
没有,就是在linux下编译成一个可执行文件了,然后作为系统的一项服务部署的,上游的服务会call这项服务,程序从数据存储队列里得到数据处理,完成业务逻辑后,再把数据推送给下游的服务。业务方法什么的代码我都能理解,可是没有入口函数,这个程序是怎么执行的,我就迷糊了
追答
如果有中间.o文件的话可以用nm命令看一下,.o都没有就没办法了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式