实际上我正在尝试用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 回答
正确的方法是将这些包含添加到您使用其中定义的方法的源文件中 . 但是如果你坚持通过makefile包含它,你可以使用 force include .
Visual studio link.
或使用
-include path_to_the_header
表示gcc只需将此选项添加到编译命令行即可 . 祝好运 .