-2

实际上我正在尝试用 mingw 编译 ac/c++ 项目。同一个项目实际上是用 Visual Studio 编译器编译的。为此,我编写了一个makefile,到目前为止一切正常。

在编译期间,我收到有关使用 string.h 和 stdio.h 声明的函数的错误,例如 memcpy() 、 printf()...,并出现以下错误:

error: 'memcpy' was not declared in this scope

那是因为编译器没有找到函数。在 Visual Studio 中编译时,逻辑上没有出现此错误,因为编译器包含如下路径:

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\

我现在的问题是:我应该在我的 makefile 中做什么来告诉编译器使用 mingw 中的“string.h”和“stdio.h”函数。我试图将包含路径放在makefile中,例如:

 INCLUDE_DIRS =\
 C:\MinGW\include

但它没有效果。此外,Visual Studio 中的 string.h 和 stdio.h 与 gcc 使用的 string.h 和 stdio.h 之间存在差异。这会是个问题吗?

4

1 回答 1

0

正确的方法是将这些包含添加到您使用其中定义的方法的源文件中。但是如果你坚持通过 makefile 包含它,你可以使用force include

视觉工作室链接。

在 Visual Studio 开发环境中设置此编译器选项 打开项目的“属性页”对话框。

打开项目属性页。

单击 C/C++ 文件夹。

单击高级属性页。

修改 Force Includes 属性。

-include path_to_the_header用于gcc

只需将此选项添加到编译命令行即可。祝你好运。

于 2015-08-20T18:54:17.893 回答