2009-11-20 275 views
0

我正在使用Visual Studio .NET 2003,并试图将我在Linux GCC中编写和编译/成功运行的代码移植到Windows。将代码从Linux移植到Windows

我是使用VS的新手。我创建了一个新项目,并通过Project - > Add Existing Items将所有.c和.h文件添加到项目中,然后选择所有.c和.h文件。

我不熟悉编译器和链接器等的工作方式,但VS和gcc编译/链接#include文件有什么区别?我在Linux中编程的习惯是拥有一个main.c文件,并且包含我需要的所有其他.h或.c文件。然后我只会编译main.c文件。但在VS中,似乎程序没有“看到”#include文件,因为我得到的错误告诉我某些结构或变量没有声明,即使它们在我的用户定义的头文件中。

我也收到错误,如DIR是一个未声明的标识符。我已经包括了,为什么它不能识别DIR?

谢谢。

问候, 雷恩

回答

2

首先考虑与Windows编译程序GCC的端口(从MINGW32或Cygwin的)。这将为您提供更熟悉的环境。如果你仍然需要用VC++编译所有的东西,你将会有更多的移植过程。

另外,从您的帖子中看不出来,但似乎您正在尝试使用dirent.h。请注意dirent.h(和相应的库)is not included with VC++

2

最好的学习方法之一是从两个可以编译的最小应用程序开始。逐步将此工作和便携式应用程序扩展到您所需的更全面的应用程序中。

请记住将所有.c/.cpp文件添加到项目中的“源文件”目录,否则将不会进行编译。

将任何不可移植的代码(您将需要)限制在一个地方。例如,如果您需要创建线程,则需要使用一个通用的创建线程函数(但实现方式不同)。使用诸如Boost之类的便携式库可以帮助您。