总共又三种方案:
mingw+codeblocks,是windows下的gcc编译工具+跨平台的轻量ide,可以编译c++的程序,还可以使用wxWidget(跨平台的界面工具)
使用cygwin,是windows下中间件级别的编译工具。可以在cygwin下用命令行编译程序。
使用vmware或者其他虚拟机,安装目标linux系统,并且编译。这是虚拟硬件级别的编译工具,其编译的程序是完全可以在linux系统上运行的。
linux下的程序不能在windows下调试的,系统调用不一样。建议在windows下装虚拟机安装linux,然后在linux下调试,也可以在windows下用远程终端连接虚拟机用gdb命令行调试。
建议看看操作系统的课本。你的一些基本概念比较混淆。比如MinGW是编译器,你说的DOS应该是指命令行。DOS其实是操作系统(disk operation system),估计你是在windows下使用的命令行。其实VC也是有编译器,链接器的,只是它用图形界面把这些命令行给隐藏了起来。
在windows下安装一个开发工具Code::Blocks,可以跨平台的。内置使用了一cygwin环境,就是linux的开发环境。
安装虚拟机,在虚拟机中安装Ubuntu,再在Ubuntu上进行Linux程序开发;还有种方式就是远程登陆到另外一台Linux主机;
编译的程序目标平台如果是linux,建议安装vmware虚拟机,虚拟机里面装个ubuntu或者centos系统;
还有个mingw, 可以谷歌看看怎么用