首页 文章

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

提问于
浏览
-2

实际上我正在尝试用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”函数 . 我试图将include路径放在makefile中,如:

INCLUDE_DIRS =\
 C:\MinGW\include

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

1 回答

  • 0

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

    Visual studio link.

    在Visual Studio开发环境中设置此编译器选项打开项目的“属性页”对话框 . 打开项目属性页面 . 单击C / C文件夹 . 单击“高级”属性页 . 修改Force Includes属性 .

    或使用 -include path_to_the_header 表示gcc

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

相关问题