使用 gcc 编译器时,未在此范围内声明“memcpy”

‘memcpy’ was not declared in this scope when using gcc compiler

实际上我正在尝试用 mingw 编译一个 c/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

但是没有效果。 而且,string.h 和 stdio.h 与 gcc 使用的 visual studio 和 string.h 和 stdio.h 之间存在差异。这会是个问题吗?

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

Visual studio link.

To set this compiler option in the Visual Studio development environment Open the project's Property Pages dialog box.

Open Project Property Pages.

Click the C/C++ folder.

Click the Advanced property page.

Modify the Force Includes property.

或对 gcc

使用 -include path_to_the_header

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