【问题标题】:How to make the visual studio 2008 IDE look at the right place for header files. Compiling Qt/C++ program如何使 Visual Studio 2008 IDE 查找头文件的正确位置。编译 Qt/C++ 程序
【发布时间】:2011-09-24 18:08:05
【问题描述】:

我正在使用 Visual Studio 2008 在 Qt 4.6.2 上构建应用程序。我需要包含标题 <QtGui\QDir>

问题:QDir 标头包含多个标头。其中一个是 qfile.h。现在 ide/compiler 无法包含这个文件,我得到的错误是这个

c:\devprojects\myprojects\nttoolkit\trunk\external\qt\include\qtcore../../src/corelib/io/qfile.h(45) : 致命错误 C1083: 无法打开 包含文件: 'Qt/include/QtCore/qiodevice.h':否 这样的文件或目录

我无法更改文件 qfile.h 中的路径,因为它是我项目的外部文件。我如何让它工作。

谢谢。

【问题讨论】:

  • 您是从 QMake pro 文件构建 vcproj 吗? QMake 应该包含正确的目录。

标签: c++ visual-studio-2008 qt


【解决方案1】:

在VS2010中,我去:

项目属性 -> VC++ 目录 -> 包含目录

并设置包含我需要包含的标题的目录的位置。我目前无法安装 VS2008,但我认为有一个类似的配置选项可用。

【讨论】:

    【解决方案2】:

    在注释部分here 中描述了预处理器搜索包含文件的各个位置。

    对于像 Qt 这样的“SDK”,人们通常会在工具 | 下更改他们的VC++ Directories, Projects, Options。选项 | “项目和解决方案” | “VC++ 目录”,以便包含文件和库文件列表包含合适的 Qt 目录。这样,当预处理器搜索 Qt 包含文件时,它会在正确的位置查找,而当链接器查找 .LIB 文件时,它也会找到它们。

    更改这些列表的一个缺点是它们适用于从该版本的 Visual Studio 构建的所有项目。如果您有不同的项目使用不同版本的 SDK,这可能会让人头疼。在这种情况下,一种解决方案是创建名为 INCLUDE 和 LIBPATH 的环境变量,然后使用 /useenv 开关启动 devenv 以覆盖工具 | 中的 VC++ 目录设置。选项。

    最后,第三种选择是通过项目属性提供额外的包含和库文件夹。在项目 |属性 | C++ |一般第一个属性是“Additional Include Directories”。放置在那里的值通过/I switch 传递给预处理器。同样的项目 |属性 |链接器 |常规选项卡有一个“附加库目录”属性,该属性通过/LIBPATH switch 传递给链接器。

    这第三个选项看起来很有吸引力,因为它允许您逐个项目地设置这些附加目录。缺点是它“硬编码”了项目中的一些目录名称。如果您将项目移动到 Qt 文件位于不同目录中的新机器上,或者当您必须将 Qt 目录移动到不同的硬盘驱动器等时,这可能会非常痛苦。

    【讨论】:

    • 谢谢,答案应该这样写。完整而准确的外部链接。
    猜你喜欢
    • 2013-09-29
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多