使用 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.
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
只需在编译命令行中添加此选项即可。祝你好运。
实际上我正在尝试用 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.
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
只需在编译命令行中添加此选项即可。祝你好运。