
C++的菜鸟问题:入口函数 30
最近在看公司前辈编写的程序,在linux下写的几个.cpp文件中都没有main()入口函数,然后在makefile里通过g++编译成一个可执行文件,为公司开发的系统提供数...
最近在看公司前辈编写的程序,在linux下写的几个.cpp文件中都没有main()入口函数,然后在makefile里通过g++编译成一个可执行文件,为公司开发的系统提供数据处理的功能。这样的话,调用这项服务时,是以哪里作为入口呢?很奇怪。其中业务处理的.cpp文件里数据库连接、数据处理、上下游服务的连接都是不同的方法,互相基本也没什么调用。没有入口函数,程序会怎么执行呢?
展开
2个回答
展开全部
一个应用由n个cpp文件编译成n个.o,然后链接成一个程序,其中只有一个cpp中有main,不会每个cpp中都有main
main肯定有,但是只有一个
main肯定有,但是只有一个
更多追问追答
追问
我确切看过所有的.cpp文件了,确实没有main函数,所以很奇怪程序的入口是哪里。因为编译链接成的程序是作为一项服务用的,可是没有入口函数,服务又怎么执行呢。而且所有的业务逻辑方法互相都没有调用,怎么完成服务的?真心纳闷
追答
程序会不会不完整?这部分代码会不会只是提供了一个库功能,即链接成一个libxxx.so或者libxxx.a?
既然有makefile,应该可以看到编译出来的东西吧?
如果都没有编译出来应用,那么这部分代码就不包含应用(即含main的cpp)
展开全部
是不是编译成动态链接库了,然后外部程序调用的这个库
另外一种可能是你们的代码引用的某些库里面带有main函数。比如boost的测试单元里面就自带入口函数,不需要自己写。
另外一种可能是你们的代码引用的某些库里面带有main函数。比如boost的测试单元里面就自带入口函数,不需要自己写。
更多追问追答
追问
没有,就是在linux下编译成一个可执行文件了,然后作为系统的一项服务部署的,上游的服务会call这项服务,程序从数据存储队列里得到数据处理,完成业务逻辑后,再把数据推送给下游的服务。业务方法什么的代码我都能理解,可是没有入口函数,这个程序是怎么执行的,我就迷糊了
追答
如果有中间.o文件的话可以用nm命令看一下,.o都没有就没办法了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询