为什么静态库包含main函数
Why does static library contain a main function?
我遇到了一个奇怪的静态库,它包含一个 main()
函数(c++)。
我只是想知道它的目的是什么。
main()
是如何执行的?
从链接器的角度来看,main
函数在哪里并不重要-它可以在静态库中以及在独立的目标文件中,链接器不能关心。它从目标文件中生成可执行文件,无论它们来自何处,并且在最终的可执行文件中,库/非库符号之间的所有区别都消失了。
至于目的,我可以想象某种特殊的应用程序框架可以在库中使用main,并以定义函数的形式提供对它的回调。
我只是想知道这是什么目的。
这是单元测试或图形/游戏引擎框架的常用技术,用于定义可执行程序的main()
入口点,并从某些工厂模式模板绑定自定义类定义。
main()
是如何执行的?
根据定义,它是任何c++程序的主要入口点,因此执行是由程序启动链接器脚本触发的。
使用这样的东西意味着你在可执行项目中编写客户端类,将它们与框架绑定,并省略定义main()
函数。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 为什么 'main' 函数中的局部 int 变量会自动初始化?
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 尝试更改 main 函数内的全局变量值时出现编译错误 C++.
- 我应该在 main 函数中写什么来测试我的问题?
- 如何在 main 函数中输出两个新字符串C++?
- 有没有办法通过 main 函数访问受保护的矢量大小而无需将其转换为公共?
- 我们可以在main函数中声明嵌套类对象吗
- 为什么Main函数上的Sleep()会停止所有线程
- C++ main 函数中初始化静态变量
- 为什么VC++/MFC没有main函数?
- 如何在 main 函数的一个对象中初始化两个类的值?C++
- 在 C++ 中解析 main 函数的大量输入的正确方法是什么
- 如何编写一个 void 函数,该函数将在数组中搜索值,并通过引用将该值的位置传递回 main 函数
- 如何将矩阵参数发送到从C 中的MAIN函数
- 如何从子例程函数获取到 main 函数的返回值
- 为什么我不能在 main 函数中更改类的公共变量
- C++编译错误:多个定义"main",但项目中只有一个 main 函数
- 如何使用 x86 程序集在 c 中访问 main 函数中的变量