实际上我正试图用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中做什么来告诉编译器使用" string.h"和" stdio.h"来自mingw的功能。我试图将include路径放在makefile中,如:
INCLUDE_DIRS =\
C:\MinGW\include
但没有效果。 此外,visual studio和string.h中的string.h和stdio.h与gcc使用的stdio.h之间存在差异。这可能是个问题吗?
答案 0 :(得分:0)
正确的方法是将这些包含添加到使用其中定义的方法的源文件中。 但是如果你坚持通过makefile包含它,你可以使用 force include 。
在Visual Studio开发中设置此编译器选项 环境打开项目的“属性页”对话框。
打开项目属性页面。
单击C / C ++文件夹。
单击“高级”属性页。
修改Force Includes属性。
或-include path_to_the_header
使用var m = new MultiMap<string, int, bool>();
只需将此选项添加到编译命令行即可。祝你好运。