C++ 编译C++;windows for linux下的代码,可以运行

C++ 编译C++;windows for linux下的代码,可以运行,c++,windows,linux,cygwin,C++,Windows,Linux,Cygwin,我是关于linux编译代码的新手。很可能是Debian 5.0。我需要将我的cpp代码编译成可以运行的,我的意思是,其他人只需点击它,就可以轻松地运行Windows中的程序 有人能帮忙吗?我用virtualbox来做这个。这既简单又方便。如果您有适当的许可证,您可以运行多个Linux发行版和多个版本的Windows。您还可以在每个虚拟机上运行subversion等,以便在构建时跨所有虚拟机同步更改。编译后,您可以轻松地在桌面上创建快捷方式,或在菜单上添加一个条目,通过脚本启动程序;比如: #!/

我是关于linux编译代码的新手。很可能是Debian 5.0。我需要将我的cpp代码编译成可以运行的,我的意思是,其他人只需点击它,就可以轻松地运行Windows中的程序


有人能帮忙吗?

我用virtualbox来做这个。这既简单又方便。如果您有适当的许可证,您可以运行多个Linux发行版和多个版本的Windows。您还可以在每个虚拟机上运行subversion等,以便在构建时跨所有虚拟机同步更改。

编译后,您可以轻松地在桌面上创建快捷方式,或在菜单上添加一个条目,通过脚本启动程序;比如:

#!/bin/bash
/path/to/your/progam
例如,将其另存为
launch.sh
,并授予其ugo+x权限

chmod ugo+x launch.sh 
创建快捷方式时,可以完全按照在Windows中创建图标的方式将图标与脚本关联

更新

如果你正在将编译好的程序发送给你的朋友(假设是通过电子邮件)。您只需指示您的朋友在下载您的文件的同一目录中启动终端窗口,然后运行以下操作:

chmod ugo+x your_program
./your_program
或者你可以给他发送两个文件:一个是你的程序,另一个是我上面描述的“启动”脚本。由于这两个文件将下载到同一目录,因此您可以将启动脚本更改为:

#!/bin/bash
./your_program

当他点击launch.sh时,你的程序将被执行。

假设你想在Windows上编译一些东西,并让它在任何Linux机器上运行,那是不可能的。Debian和Ubuntu都支持许多体系结构,其中许多体系结构完全没有二进制兼容性。如果您知道您的朋友拥有什么类型的硬件,您可以针对该体系结构构建二进制文件


如果您想要一个快速而肮脏的答案,您可以为i386构建,因为64位的机器可能仍然可以运行良好(但不能保证)。

我强烈建议只设置一个在Windows下运行的Linux VM。例如,是免费下载;你也可以下载很多版本的Linux,我有一个ubuntu版本,但是如果我在ubuntu下编译代码,它能在Debian 5.0下工作吗?@KamilKrzyszczuk最好是使用你认为可以支持的最旧Linux发行版并使用它来编译。这将保证最大的兼容性(对依赖项的静态链接将有很大帮助,所以不同发行版的名称差异很大),我想我不需要快捷方式。我将把这个程序发送给我的朋友,我需要确保他可以轻松地运行它。你在你的问题上没有解释清楚。将更新我的答案。但是如果我在Ubuntu下编译代码,它会在任何其他Linux发行版下工作吗?例如Debian?@KamilKrzyszczuk您的程序做什么?它是静态链接还是动态链接?它是否会在相同的体系结构中执行?它依赖于哪些第三方库?这些库(假设你的程序是动态链接的)在目标Linux发行版中可用吗?我的程序使用MySQL库来进行C,但是程序是C++的。这里是mysql libs的链接:-仅此而已。嗯,我对it机器的架构不太了解,但这只是dedserver。事实上,在一个Linux上构建的简单程序可能会在另一个Linux上运行。尤其是在没有涉及GUI依赖项的情况下。我的所有开发工作都是在x86_64 Linux机器上进行的(包括个人开发和工作开发);编译后的代码都不能在ARM芯片上的嵌入式Linux环境中工作。