选择在 Visual C++ 2010 中使用哪个主函数

Posted

技术标签:

【中文标题】选择在 Visual C++ 2010 中使用哪个主函数【英文标题】:Choosing which main function to use in Visual C++ 2010 【发布时间】:2011-08-03 07:19:25 【问题描述】:

我正在从 Unix 移植一个 C++ 应用程序,原始开发人员创建了几个带有 main() 函数的文件,然后使用 Makefile 选择要使用的 main()。

Visual C++ 2010 中如何选择包含 main() 函数的文件?

目前,当我编译时,由于重复的 main() 符号而出现链接器错误。

我唯一能想到的是宏条件。

还有其他想法吗?

【问题讨论】:

宏条件是个好主意。 @Schnommus:如果原版没有宏,很可能它是为了生成多个可执行文件,在这种情况下,在单个解决方案中创建不同的项目似乎更接近原始代码。 【参考方案1】:

多个main 函数意味着原始代码不会创建单个可执行文件,而是创建一组可执行文件。您应该弄清楚哪些部分属于每个可执行文件(阅读 Makefile),然后在解决方案中为每个可执行文件创建不同的项目(对库执行相同的操作)。然后您可以使用 IDE 选择要编译/运行的可执行文件。

【讨论】:

【参考方案2】:

在每个源文件的配置属性中(在解决方案资源管理器中右键单击),您可以选择“从构建中排除”。由于这是每个配置的设置,您可以添加一些配置并使用 main() 相互排除文件。例如,对于配置“MainA”,您包括 maina.cpp,排除 mainb.cpp 和 mainc.cpp,对于“MainB”,包括 mainb.cpp,排除 maina.cpp 和 mainc.cpp,等等。

另一种选择是只有一个 main() 并使用参数或配置文件选择适当的源。或者,也许是最好的解决方案,为每个主文件创建一个项目,并将公共部分放在静态或共享库中。

【讨论】:

以上是关于选择在 Visual C++ 2010 中使用哪个主函数的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 2010 一个解决方案里有多个c++源文件 怎么只执行其中一个?

如何在 OpenCV + Visual C++ 中测量对比度

visual studio2010 c++头文件怎么写

Visual Studio 2010 的 Visual C++ 2012 运行时库先决条件

Visual C++和Visual Studio有啥区别,大学生用哪个比较好?

在 Visual Studio 2010 中从 .NET 项目启动 C++ 项目