VS:能否在同一个项目中运行多个包含main文件?

VS:能否在同一个项目中运行多个包含main文件?


1. 背景

  在用VS编程学习C/C++时,总会按照教科书编写多个C/C++程序。程序虽小,但却都包含main()函数。那么能否在当前项目下运行多个包含main函数的.cpp文件?

2. 解答

  不能,VS一个项目只能有一个main()。在VS中,区分一个C++程序是通过项目区分,而不是以.cpp文件区分。

3. 实例

main.cpp代码:

// main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
using namespace std;

int main()
{
	cout << 0 << endl;
	return 0;
}

main1.cpp代码:

// main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
using namespace std;

int main()
{
	cout << 1 << endl;
	return 0;
}

运行结果:
运行结果
错误提示:

1>main.obj : error LNK2005: _main 已经在 main1.obj 中定义
1>C:\Users\Administrator\Desktop\main\Debug\main.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

4. 替代方法

方法1:只保留待运行的.ccp文件,将其余包含main()的.cpp文件移除、删除、禁用(从生成中排除)、注释main()、修改main函数名等。

移除.cpp文件:
移除
禁用.cpp文件:
禁用

方法2:使用代码编辑器,如VSCode,Sublime Text 3等。在代码编辑器上写代码,复制到VS上编译。当然也可以在代码编辑器上搭建C/C++编译环境,直接在上面编译,推荐VS Code:搭建C/C++编译调试运行环境
VSCode编译main.cpp:
VSCode编译main.cpp
VSCode编译main1.cpp:
VSCode编译main1.cpp

5. 总结

  1. VS虽然编译方便,但体量太大,更适用于编写大中型的项目,起码上百行代码以上。对于初学者练习编程而言属于牛刀小用。
  2. 推荐在代码编辑器上搭建运行环境,虽然有的编译调试不太方便。
  3. VC 6.0(VC++6.0)、Dev C++、 Code::Blocks也能用,虽然版本看起来很老。
发布了77 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_34801642/article/details/103785099