在 Windows 和 Linux 中运行 C++ 程序
Posted
技术标签:
【中文标题】在 Windows 和 Linux 中运行 C++ 程序【英文标题】:Running a C++ program in Windows vs Linux 【发布时间】:2015-05-29 14:47:24 【问题描述】:我的老师告诉我,我的作业(一个简单的程序,我选择用 C++ 编写代码)必须可以在 Linux 中运行。他是这么说的:
"...您还应该包含一个 README 文件,该文件包含应该运行的所有命令行 剪切和粘贴。如果你使用 C,那么
$ gcc –o 2010-11649-hairpin 2010-11649-hairpin.c
$ 2010-11649-hairpin –input filename –l 200 –m 4 –h 20
"
其中-l 200
、-m 4
等是程序的参数。
我一直在 Windows 中编写代码,而且我很少有从命令行运行程序的经验,所以我不确定我需要做什么来确保我的程序可以在 Linux 中运行。有人可以帮我弄清楚我需要做什么吗?我已经编写了程序,我只需要确保当 TA 尝试在 Linux 中运行它时一切正常。
【问题讨论】:
如果你只是使用标准的c++,就不用担心兼容性了。 好吧,如果您想确保 TA 与您有相同的结果,那么您需要在与您的 TA 类似的环境中测试编译。您没有 Linux 计算机的访问权限吗? 如果你的老师告诉你需要在 linux 中编译你的程序,但没有给你至少介绍使用 linux 的课程,那么就有问题了,你有礼貌的权利向他请教如何做到这一点 在你的 Windows 机器上安装 VirtualBox 并在上面安装 Linux,然后你就可以设置了。 【参考方案1】:首先,您必须通过在 Linux 上执行指令来尝试此操作。
如果您使用标准 C/C++ 编写程序,它将在 Linux 上编译并运行。一旦你接触到不太基本的部分,你很有可能已经使用过特定于操作系统的标头,但它可能不会那么容易工作。
在 Linux 下编译 C++ 程序时,通常要使用 g++
gcc
中的 C++ 编译器。根据您的程序,在您的示例中将gcc
替换为g++
可能有效(尽管您的文件名可能不同)。
所以你最终可能会得到类似的东西:
g++ –o myprogram myprogram.cpp
./myprogram –l 200 –m 4
以上内容仅适用于所有源代码都在一个目录中的基本程序。
【讨论】:
我还有一些需要编译的辅助函数。如果myProgram
依赖于辅助函数,比如Helper()
,写了一个单独的.cpp 文件,那么通过终端获取myProgram
的过程是什么?
您可以在第一个源文件之后添加其他源文件。所以你可以做g++ –o myprogram myprogram.cpp helper.cpp
。第二个命令./myprogram
将从终端运行程序。【参考方案2】:
查看您的程序是否在 gcc 中编译的一种快速方法是使用在线编译器,例如 ideone。将代码粘贴到那里并选择 C++ 4.9.whateverversion (gcc),然后编译并运行。
另一种方法是在虚拟机中安装 linux 操作系统,这是最简单、最方便的方式。您可以使用免费的oracle virtualbox 或VMWare。
在vm中设置linux是easy
这里还有其他答案向您展示如何在 linux 中从命令行编译程序。
【讨论】:
【参考方案3】:如果您的 C++ 程序也只使用一个文件(例如 hairpin.cpp),您可以使用几乎完全相同的命令,除了将 gcc
替换为 g++
和 hairpin.c
by hairpin.cpp
。
但是,如果您有足够的时间和系统资源,我建议您尝试在虚拟机中编译和运行所有内容。 VirtualBox 是一个很好的免费虚拟化软件,Linux Mint 在我看来是一个非常适合初学者的发行版。
在 VM 上自行测试一切可能是确保一切按预期工作的最佳解决方案。
【讨论】:
对不起,我在这里保持更正:正如@Thirler 在另一个答案中发布的那样,它也适用于更多源文件,但都在一个目录中。以上是关于在 Windows 和 Linux 中运行 C++ 程序的主要内容,如果未能解决你的问题,请参考以下文章
C++ 程序在 Linux 上完美运行,但不能在 Windows 上运行
Linux 与 Windows,C++ 运行时性能差异超过读取 CSV 文件