Linux到Windows C ++端口

时间:2011-01-25 18:06:26

标签: c++ windows linux porting

我正在尝试将我的C ++应用程序从Linux移植到Windows(Visual C ++)。 我很好奇你知道任何扫描源代码并检查可能的问题的脚本/工具(例如dirent.h等)。

感谢。

4 个答案:

答案 0 :(得分:5)

第一个工具称为编译器。它将告诉您程序是否编译。

第二个工具被称为运行您可能拥有的任何测试。他们会告诉你生成的二进制文件是否有效。

你在寻找什么,一个水晶球来拯救你的工作?无论你采取什么方法或者你可以阅读什么来帮助你开始,你都会在某个时候必须(1)编译这个东西,(2)检查它是否有效。

答案 1 :(得分:3)

http://www.mingw.org/wiki/msyshttp://www.cygwin.com/

编辑:
Cygwin本质上是Unix / Posix和windows之间的兼容层(实现为dll) - 代码应该保持不变,但不同版本的cygwin dll之间可能存在问题。

Msys + Mingw是在win32中重新实现的Unix / Posix库的子集,以及gcc编译器的端口和必要的构建工具。生成的exe完全本地运行,但一些复杂的构建过程需要更多的工作。

无论哪种方式,如果应用程序使用X,那么您还需要一个X服务器,这两个都提供一个。但是如果你正在使用大量的图形并且应用程序是使用像Qt或wxWidgets这样的东西编写的,那么你将会有一定的痛苦让它发挥作用。

答案 2 :(得分:3)

Microsoft在MSDN上有关于管理从* nix到Win32的端口的“最佳”方式的条目。

http://msdn.microsoft.com/en-us/library/y23kc048.aspx

答案 3 :(得分:1)

首先,我只是使用MinGW(至少在开始时)编译,以消除任何可能的gcc到MSVS问题(不要浪费时间与编译器相关的问题)。

其次,只需编译代码并观察未找到的所有包含文件。转到包含这些标头的代码,确定它是否是Windows中存在的依赖关系(但尚未在include-paths中安装或设置)。如果没有,请使用跨平台库来替换不可移植的库。典型的跨平台库包括:Boost,OpenGL,SDL,Qt等(取决于您的应用程序的运行情况)。如果它只是一个命令行“数字运算”软件,你可能会在Boost找到所需的一切。