VisualStudio中的多个主要CPP文件
Multiple main CPP files in VisualStudio?
我有一些软件的示例目录,其中包含多个具有多个main
函数的文件。我可以将所有这些文件组装到一个项目中,然后编译它们,然后运行特定的文件而不会出现main already defined
错误吗?假设我不想为每个cpp文件创建单独的项目。
我需要简单的一两次点击解决方案(如果存在的话)。我不想在文件夹之间分发文件或重构文件内容。例如,在Eclipse/Java中,您可以用main右键单击任何文件并运行它。在一个项目中可以有许多主文件。这对于VisualStudio/CPP是可能的吗?
更新2
我知道c++不是Java, Visual Studio不是Eclipse。我的问题是关于一些手工操作的自动化。
将这些main
函数放在单独的命名空间中,然后定义要运行哪个,例如
File1.cpp
namespace F1
{
int main(int argc, char * argv[])
{
// ...
}
}
The-real-main.cpp
int main(int argc, char * argv[])
{
if (whatever)
return F1::main(argc, argv);
}
Edit: In response to additional information.
c++不是Java, VS也不是Eclipse:)在VS中同时维护多个程序的自然方法是将多个项目(每个可执行文件或库一个)放在单个解决方案中。如果你想运行一个项目,只需在Solution Explorer
中右键单击它,选择Set as Startup Project
,然后单击Start
按钮来运行它。
将项目添加到解决方案中,右键单击解决方案,选择Add
| New project...
或Add
| Existing project
。
在Visual studio中:
创建一个"解决方案"-在解决方案下可以创建多个"项目"。每个项目将分别编译成可执行文件。编译是正常完成的,而不是"卸载"不需要的项目。要重新打开其他项目,只需从解决方案资源管理器中选择"重新加载项目"。
这个函数对于研究/组织目的是有用的,其中一个是在一个共同的"文件夹"中分组源文件,以便于搜索和访问,同时仍然单独编译/调试。我能说的主要优点是,人们可以使用解决方案资源管理器轻松地导航项目。
我没有工作过OpenCV,但它使用cmake,并在示例目录中有一个CMakeLists.txt。这里有一些关于使用cmake构建示例的讨论。
Cmake本身不构建任何东西,它为目标平台生成构建脚本,并且应该能够创建可以加载到Visual Studio中的解决方案和项目文件。
是的,有一个简单的方法可以做到这一点:右键单击这些包含main函数且您不想在解决方案资源管理器窗口中运行的源文件,然后转到property->configuration->general->excluded from build,选择yes。因此,在构建和运行项目时,这些源文件将无法编译和运行。当您想要运行另一个源文件时,只需包含它并排除其他源文件。
可能最简单的解决方案是使用多个构建配置。只需创建一些构建配置,为每个配置定义一个入口点。
在Visual Studio中,您必须为每个要创建的可执行文件创建一个项目。
如果只需要构建一个文件,您可以使用属性中的'Exclude Files From Build'选项来排除其他文件。选择多个源文件并一次排除它们。显然,如果要跨文件访问函数/符号,则此解决方案不起作用。
只需几个基本步骤即可编译&在每个c++项目中运行多个主文件:假设有c1.cpp, c2.cpp…c100.cpp文件。
- 点击显示所有文件
- 排除所有的cpp文件,除了你想编译和运行的文件。
因此,在每个实例中,您只能投影一个主文件,但您可以看到project下的所有文件。因此,每次您想运行任何文件时,只需排除其他文件并仅包含此文件。
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何在cpp文件之间切换窗口?在Qt中
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- C++ 链接到单独的.cpp文件说"multiple definitions"
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 包含在.cpp文件中包含在 .h 文件时包含
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 如何使用线程类编译 cpp 文件?
- 使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 从另一个 cpp 文件更改结构内、映射键内的变量