【问题标题】:what does #include <crtdll/stddef.h> mean?#include <crtdll/stddef.h> 是什么意思?
【发布时间】:2010-11-22 15:35:51
【问题描述】:

我正在尝试使用 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

任何关于如何修复它的帮助将不胜感激。

【问题讨论】:

  • 认为 这意味着 stddef.h 应该在 crtdll 目录中,在搜索标题的默认路径上,但我已经有一段时间没有这样做了这个。

标签: c++ include compilation


【解决方案1】:

如果我没记错的话,那只是一个相对路径。换句话说,Visual Studio 将在项目根目录的crtdll 子目录中查找stddef.h

【讨论】:

  • 我也是这么想的,但是没试过。谢谢。
【解决方案2】:

通过使用前面的函数,你正在召唤,然后将一个头文件插入到你当前的源代码中。

对于#include &lt;crtdll/stddef.h&gt;,您将在编译和链接期间插入crtdll 目录中的stddef.h 头文件(它应该是在您的编译器中定义为头文件的控制笔的子文件夹)你的程序。

通过将stddef.h 头文件插入到您的源代码中,您可以让您的程序能够使用 NULL 指针常量,这在您可能遇到或可能没有遇到的一些更高级的程序中非常有用。

祝你的程序好运!

【讨论】:

    【解决方案3】:

    我不是 C++ 程序员,但我确实明白什么

    你确定吗? 包含 搜索指定文件的包含路径并将内容复制到 .cpp 中该文件的内容。 所以你只是缺少 crtdll/stddef.h 文件,但是 stddef.h 实际上属于 C 标准库,所以你可以用 C 中的#include 或 C++ 中的#include 替换它 最简单的方法是检查您的包含目录。 crtdll 是 msvc 提供的 C 标准库,所以可能你必须添加你的标准库包含目录的父文件夹

    【讨论】:

      【解决方案4】:

      这意味着 stddef.h 需要包含在 crtdll 文件夹中。

      您需要检查 Visual C++ 项目的包含目录,以查看 Visual Studio 查找头文件的默认目录。

      要修复此错误,请查看您在哪个路径安装了 Scintilla 控件。 crtdll 文件夹很可能会在那里。然后,将此文件夹添加到您的 Visual Studio 包含目录中。

      您可以在以下项目属性对话框中进行设置:

      Here http://i56.tinypic.com/2zo9guh.jpg

      【讨论】:

        猜你喜欢
        • 2012-09-27
        • 1970-01-01
        • 2018-07-04
        • 1970-01-01
        • 2011-02-12
        • 2017-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多