2011-01-25 46 views
2

我想将我的C++应用程序从Linux移植到Windows(Visual C++)。 我只是好奇你是否知道任何脚本/工具会扫描源代码并检查可能的问题(如dirent.h等)。Linux到Windows C++端口

谢谢。

+0

我不知道这样的工具。这种工作通常是手工完成的。 – karlphillip 2011-01-25 18:12:23

+1

@karlphillip:编译器通常能很好地列出丢失的头文件。 `make`甚至可能会列出丢失的头文件(如果您已经设置了正确的依赖关系规则,例如运行`makedepend`或`gcc -MD`)。 – 2011-01-25 18:16:23

+0

@Ben谢谢。但我认为他是指Windows工具。 – karlphillip 2011-01-25 19:22:43

回答

3

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

编辑:
Cygwin的基本上是在Unix/POSIX和窗口之间的兼容层(作为一个DLL实现) - 的代码应该是不变的,但可以有不同版本的之间问题cygwin dll。 Msys + Mingw是在win32中重新实现的Unix/Posix库的一个子集,并且是gcc编译器的一个端口以及基本构建工具。由此产生的exe完全在本机运行,但一些复杂的构建过程需要更多的工作。

无论哪种方式,如果应用程序使用X,那么你还需要一个X服务器,这两个都提供了一个。但是,如果你正在做大量的图形,而且应用程序是使用类似Qt或wxWidgets的东西编写的,那么你将会有相当数量的痛苦让它起作用。

1

首先,我只想编译使用MinGW的(至少在初期),以消除任何可能的gcc来MSV的问题(不要浪费时间与编译器相关的问题)。

其次,只编译代码并观察所有未找到的包含文件。转到包含这些头文件的代码,确定它是否存在于Windows中的依赖项(但未安装或设置为include路径)。如果不是,则使用跨平台库来替换非可移植库。典型的跨平台库包括:Boost,OpenGL,SDL,Qt等(取决于您的应用程序的执行情况)。如果它只是一个命令行“数字处理”软件,那么您可能会在Boost中找到所需的全部内容。

5

第一个工具叫做你的编译器。它会告诉你,如果你的程序编译。

第二个工具被称为运行你可能有的任何测试。他们会告诉你,如果产生的二元作品。

你在找什么,一个水晶球,以免你的工作?无论你采取什么方法或者你可能阅读什么来帮助你入门,你都需要(1)编译这个东西,并(2)检查它是否有效。