我正在使用Visual Studio .NET 2003,并且我正在尝试将已编写并在Linux GCC中成功编译/运行的代码移植到Windows。
使用VS时,我是新手。我创建了一个新项目,并通过Project将所有.c和.h文件添加到项目中 - >添加现有项目,然后选择所有.c和.h文件。
我不熟悉编译器和链接器等的工作原理,但VS和gcc如何编译/链接#include文件有什么区别?我在Linux中编程的习惯是拥有一个main.c文件,并且#include我需要的所有其他.h或.c文件。然后我只会编译main.c文件。但是在VS中,似乎#include文件没有被程序“看到”,因为我收到的错误告诉我某些结构或变量未被声明,即使它们在我的用户定义的头文件中。
我也遇到错误,例如DIR是未声明的标识符。我已经包括在内,为什么它不能识别DIR?
谢谢。
此致 莱恩
答案 0 :(得分:2)
首先考虑使用gcc的windows端口(来自Mingw32或Cygwin)编译程序。这将为您提供更熟悉的环境。如果您仍然需要使用VC ++编译所有内容,那么您将有更多的增量移植过程。
此外,您的帖子中并不明显,但似乎您正在尝试使用dirent.h。请注意dirent.h(和相应的库)is not included with VC++。
答案 1 :(得分:2)
学习的最佳方法之一是从可以在两者上编译的最小应用程序开始。将这个工作和便携式应用程序逐步扩展到您想要的功能更全面的应用程序中。
请记住将所有.c / .cpp文件添加到项目的“源文件”目录中,否则将无法编译它们。
将任何非便携式代码(您需要的)限制在一个地方。例如,如果您需要创建线程,请在整个过程中使用通用的创建线程函数(但实现方式不同)。使用Boost等可移植库可以在这里提供帮助。