我有一个软件的示例目录,其中包含多个main
函数的文件。我可以将所有这些文件组装到一个项目中,编译它们,然后运行特定的文件而不会出现main already defined
错误吗?假设我不想为每个cpp文件创建单独的项目。
更新
我需要简单的单击两下的解决方案(如果存在)。我不想在文件夹之间分发文件或重构文件内容。例如,在Eclipse/Java中,您可以右键单击任何带有main的文件并运行它。并且在一个项目中可以有许多主文件。这对VisualStudio/CPP来说可能吗?
更新2
我知道C++不是Java,Visual Studio也不是Eclipse。我的问题是关于一些手动操作的自动化。
8条答案
按热度按时间cgfeq70w1#
把这些
main
函数放在单独的命名空间中,然后定义,你想运行哪个,例如。编辑:回应其他信息。
C++不是Java,VS也不是Eclipse:)在VS中同时维护多个程序的自然方法是将多个项目(每个可执行文件或库对应一个项目)放在一个解决方案中。如果要运行一个项目,只需在
Solution Explorer
中右键单击它,选择Set as Startup Project
,然后单击Start
按钮即可运行它。若要向解决方案中添加项目,请右键单击该解决方案,然后选择“
Add
|New project...
或Add
|Existing project
.r1zhe5dt2#
在Visual Studio中:
创建一个“解决方案”-在该解决方案下,可以创建多个“项目”。每个项目都将单独编译为可执行文件。编译将正常完成,而不是“卸载”不需要的项目。要重新打开其他项目之一,只需从解决方案资源管理器中选择“重新加载项目”。
这个函数对于学习/组织的目的是有用的,当一个人在一个公共的“文件夹”中分组源文件,以便于搜索和访问,同时仍然单独编译/调试。从我可以告诉的主要好处是,一个人可以很容易地导航一个项目使用解决方案资源管理器。
vfhzx4xs3#
我没有使用过OpenCV,但是它使用了cmake,并且在sample目录中有一个CMakeLists.txt。
Cmake本身不生成任何内容,它为目标平台生成生成脚本,并且应该能够创建您可以加载到Visual Studio中的解决方案和项目文件。
r8uurelv4#
可能最简单的解决方案是使用多个构建配置。只需创建多个构建配置,为每个构建配置定义一个入口点。
s4chpxco5#
在Visual Studio中,您必须为每个要建立的可可执行建立一个项目。
quhf5bfb6#
如果只需要生成一个文件,则可以使用“属性”中得“从生成中排除文件”选项排除其余文件.选择多个源文件并一次排除它们.显然,如果跨文件访问函数/符号,则此解决方案不起作用.
gtlvzcf87#
是的,有一个简单的方法可以做到这一点:在解决方案资源管理器窗口中右键单击这些包含主函数并且您不想运行的源文件,然后转到属性-〉配置-〉常规-〉从构建中排除,选择是。这样,当您构建和运行项目时,这些源文件将不会编译和运行。当您想运行另一个源文件时,只需包含它并排除其他源文件。
fquxozlt8#
只需几个基本步骤即可在每个C++项目中编译和运行多个主文件:假设您有c1.cpp、c2.cpp ... c100.cpp档案。
1.点击显示所有文件
1.除了要编译和运行的cpp文件之外,排除所有其他cpp文件。
所以在每个示例中,你的项目只有一个主文件,但你可以看到项目下的所有文件。所以每次你想运行任何文件时,只要排除其他文件,只包括这个文件。