我正在尝试使用MSVC ++ 2010 Express Edition编译Scintilla控件,让它正常工作非常痛苦,因为我需要一堆文件。在编译SString.h时,我注意到了这一点:
#include <crtdll/stddef.h>
我不是C ++程序员,但我明白了什么
#include <xxx.h>
意味着,但那包括什么意思?我收到以下错误:
错误1错误C1083:无法打开包含文件:'crtdll / stddef.h':没有这样的文件或目录f \ scintilla \ lexers \ sstring.h 44
任何有关我如何解决它的帮助将不胜感激。
答案 0 :(得分:1)
如果我没有弄错的话,那只是一条相对的道路。换句话说,Visual Studio将在stddef.h
子目录(可能是项目的根目录)中查找crtdll
。
答案 1 :(得分:1)
通过使用上述函数,您将召唤,然后将头文件插入当前源代码中。
在#include <crtdll/stddef.h>
的情况下,您将从stddef.h
目录中插入crtdll
头文件(该目录应该是编译器中定义的子文件夹,作为头文件的握笔) )在编译和链接你的程序期间。
通过将stddef.h
头文件插入到源代码中,您可以为程序提供使用NULL指针常量的功能,这些功能在您可能遇到或可能未遇到的某些更高级的程序中非常有用。 / p>
祝你的计划好运!
答案 2 :(得分:0)
这意味着需要在crtdll
文件夹中包含stddef.h。
您需要检查Visual C ++项目的include目录,以查看哪些是Visual Studio查找头文件的默认目录。
要修复此错误,请参阅您在哪条路径上安装了Scintilla控件。 crtdll文件夹最有可能存在。然后,将此文件夹添加到visual studio包含目录。
您可以在以下项目属性对话框中进行设置:
答案 3 :(得分:0)
你确定吗? 包含&lt;&gt;搜索指定文件的包含路径,并将内容复制到.cpp中该文件的内容。 所以你只是缺少crtdll / stddef.h文件,但是stddef.h实际上属于C标准库,所以你可以用C中的#include或C ++中的#include替换它。 最简单的方法是检查包含目录。 crtdll是msvc提供的C标准库,所以也许你必须添加标准库包含目录的父文件夹我不是C ++程序员,但我明白了什么