我正在使用visual studio 2008在Qt 4.6.2上构建应用程序。我需要包含标题<QtGui\QDir>
。
问题:QDir标头包含多个标头。其中一次是qfile.h。现在ide /编译器无法包含此文件,我得到的错误是
C:\ devprojects \ MyProjects下\ nttoolkit \树干\外部\ QT \包括\ qtcore ../../ SRC / corelib的/ IO / qfile.h(45) :致命错误C1083:无法打开 包含文件: 'Qt / include / QtCore / qiodevice.h':没有 这样的文件或目录
我无法更改文件qfile.h中的路径,因为它是我项目的外部文件。我如何让它工作。
感谢。
答案 0 :(得分:2)
预处理器搜索包含文件的各个位置在备注部分here中描述。
通常对于像Qt这样的“SDK”,人们会在工具|下更改他们的VC++ Directories, Projects, Options选项| “项目和解决方案”| “VC ++目录”,以便“包含文件和库文件”列表包含合适的Qt目录。这样,当预处理器搜索Qt包含文件时,它将查找正确的位置,当链接器查找.LIB文件时,它也会找到它们。
更改这些列表的一个缺点是它们适用于从该版本的Visual Studio构建的所有项目。如果你有不同的项目使用不同版本的SDK,这可能是一个痛苦的问题。在这种情况下,一种解决方案是创建名为INCLUDE和LIBPATH的环境变量,然后使用/useenv开关启动devenv以覆盖Tools |中的VC ++目录设置。选项。
最后,第三个选项是通过项目属性提供其他包含和库文件夹。在项目中|属性| C ++ |一般来说,第一个属性是“附加包含目录”。放在那里的值通过/I switch传递给预处理器。同样的项目|属性|链接器| “常规”选项卡具有“附加库目录”属性,该属性通过/LIBPATH switch传递给链接器。
这第三个选项似乎很有吸引力,因为它允许您逐个项目地设置这些附加目录。缺点是它“硬编码”项目中的某些目录名称。如果将项目移动到Qt文件位于不同目录的新计算机或者必须将Qt目录移动到其他硬盘驱动器等,这可能会非常痛苦。
答案 1 :(得分:1)
在VS2010中,我转到:
项目属性 - &gt; VC ++目录 - &gt;包括目录
并设置包含我需要包含的标头的目录的位置。我目前无法访问VS2008安装,但我认为有类似的配置选项可用。