我是一个编程新手,我一直在用Ubuntu做C/C++的工作。当我告诉cin/cout/cerr或printf/scanf某些内容或者从命令行获取参数时,这些都是从Ubuntu中的linux终端发生的。
现在,如果我想运行这些相同的程序(非常简单的程序,初学者级别),并在Windows中运行它们,我如何从Windows命令行运行它们?我之前学过的一门课让我们下载cygwin来模拟windows中的linux命令行,但是如果我只想从普通的windows命令行运行程序呢?这是可能的吗?它需要修改软件吗?
发布于 2012-04-15 07:54:14
您可以从linux交叉编译适用于Windows的程序。
在Ubuntu上,进程基本上是这样的:
sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime
..。
i586-mingw32msvc-g++ -o myProgram.exe myProgram.cpp
很简单,对吧?谷歌的"ubuntu交叉编译窗口“上有大量的信息。
发布于 2012-04-15 07:50:42
这是完全一样的。您可以运行cmd并编写(几乎)与在Linux中完全一样的命令。
例如,如果您在program上构建您的程序,您将像这样在Linux中运行它:
./program --option1 -o2 file1 file2在Windows中,首先你必须让输出有一个.exe后缀,然后在cmd中你可以这样写:
program.exe --option1 -o2 file1 file2从根本上说,cmd是Windows的终端。它远不及Linux终端那么好,但如果不安装额外的软件,那将是你所能得到的全部。
cin/cout/cerr和printf/scanf/fprintf(stderr, ...)使用标准的C预开文件stdin、stdout和stderr,这些文件都是在Linux和Windows中定义的。一旦您从Windows端(cmd)运行该应用程序,您将看到与在Linux终端中完全一样的输入/输出。I/O重定向也非常相似。
发布于 2012-04-15 07:52:25
cin和cout以及printf和scanf在Windows中的工作方式与在Linux中的工作方式基本相同。(我很确定cerr也是,但这一点我不是百分之百确定。不过,至少它已经存在,并且可以正常工作。)最大的区别是Windows通常不会在运行你的程序之前展开通配符(像*.txt这样的东西);在大多数情况下你必须自己去做。
基本上,只要应用程序不使用任何特定于Linux或GCC的东西,您就可以使用您喜欢测试的任何编译器在目标机器上重新编译它。
如果你不想recompile...well...good幸运的话。即使是Cygwin也不会运行原生Linux二进制文件。你需要一个装有Linux的虚拟机。
https://stackoverflow.com/questions/10158344
复制相似问题