为什么静态库包含一个主要功能?
Why does static library contain a main function?
我遇到了一个奇怪的静态库,其中包含一个 main()
函数 (C++)。
我只是想知道它的目的是什么。
main()
是如何执行的?
从链接器的角度来看,main
函数在哪里并不重要——它可以在静态库中,也可以在独立的目标文件中,链接器根本不在乎。它从目标文件生成可执行文件,无论它们来自哪里,并且在最终的可执行文件中,library/non 库符号之间的所有区别都丢失了。
至于目的,我可以想象某种专门的应用程序框架可以在库中有 main,你以定义函数的形式向它提供回调。
I just wonder what the purpose it is.
定义可执行程序的main()
入口点,并绑定来自某些工厂模式模板的自定义class定义,这是单元测试或graphics/game引擎框架的常用技术.
how does the main()
execute?
根据定义,它是任何 c++ 程序的主要入口点,因此执行由程序启动链接描述文件触发。
使用此类内容意味着您将客户端 classes 编写在可执行项目中,将它们与框架绑定,并省略定义 main()
函数。
我遇到了一个奇怪的静态库,其中包含一个 main()
函数 (C++)。
我只是想知道它的目的是什么。
main()
是如何执行的?
从链接器的角度来看,main
函数在哪里并不重要——它可以在静态库中,也可以在独立的目标文件中,链接器根本不在乎。它从目标文件生成可执行文件,无论它们来自哪里,并且在最终的可执行文件中,library/non 库符号之间的所有区别都丢失了。
至于目的,我可以想象某种专门的应用程序框架可以在库中有 main,你以定义函数的形式向它提供回调。
I just wonder what the purpose it is.
定义可执行程序的main()
入口点,并绑定来自某些工厂模式模板的自定义class定义,这是单元测试或graphics/game引擎框架的常用技术.
how does the
main()
execute?
根据定义,它是任何 c++ 程序的主要入口点,因此执行由程序启动链接描述文件触发。
使用此类内容意味着您将客户端 classes 编写在可执行项目中,将它们与框架绑定,并省略定义 main()
函数。