如何判断Qt Creator 2.4.1(基于Qt 4.7.4 32位)在哪里查找默认情况?
当我在Qt Creator中打开一个C文件并说
时#include <stdio.h>
它强调了这条线,并说
stdio.h: No such file or directory
我想告诉它在我选择的目录中查找标题;我该怎么做?
我想我也应该问:这甚至可能吗?或者我每次要编辑独立的C ++文件时都必须创建整个项目吗?
答案 0 :(得分:13)
我发现自己经常遇到这个问题。我现在也可以在我的机器上重现它(Mac OS)。
看起来QtCreator需要有一个项目来正确处理GCC路径分析(在Qt框架路径之上)。
Qt用于查找标头的过程是它使用特殊参数启动GCC(或Windows上的编译器),使其输出编译器找到其标头的路径。 但是,要做到这一点,它必须有一个与您的文件相关联的项目,因为它使用此项目来确定要使用的工具链,从而找到GCC。
所以答案是:创建一个项目始终,以使用语法analyzis。
请注意,在创建此项目时,您需要定义要使用的Qt SDK版本和工具链,否则语法控件单击将无效。
虽然不使用Qt SDK或使用Creator构建项目,但您可能会发现使用Qt Project文件的一些有趣方法。在此处查看类似问题的答案:https://stackoverflow.com/a/5817226/389405
请注意,我个人使用此方法,其中.pro
文件只列出了我项目的所有子目录,并且所有键盘快捷键都被禁用,因此我只使用Qt Creator作为编辑器。语法高亮/链接非常棒,比Eclipse快得多,远远快得多!
为此,只需在项目目录中发出qmake -pro
即可。它将创建一个[DIR].pro
文件,您可以随时删除。
我在一年前填写了一个关于这个语法analyzis的一个方面的错误,这个问题困扰我:https://bugreports.qt.io/browse/QTCREATORBUG-4846,原因是我使用的编译器输出法语而不是英语的数据。他们修复了2.4中的代码,但它可能是特定于Unix的(有关更多信息,请参阅问题的评论),因此您可能希望测试此问题是否适用于您的案例。
如果在为您的版本创建项目后问题仍然存在,请务必将其指向qt-project.org上的人员!
否则,我看到的唯一解决方案是修改QtCreator的源代码。您可以在上一篇文章中找到有关如何在此处做出贡献的一些信息:https://blog.qt.io/blog/2012/03/15/qt-creator-2-5-beta/(并尝试使用支持C ++ lambdas 的新测试版)。
答案 1 :(得分:1)
您使用的操作系统和编译器以及两者的版本? 检查安装的环境变量是否正确,例如c ++的头文件在哪里?一种变化是将“包含标题”的路径添加到左侧面板中的项目配置,转到“项目 - 程序 - 目标”并添加包含的路径。另一种方法是将.c ++标准头文件位置的完整路径添加到.pro文件中的变量“includepath”。
答案 2 :(得分:1)
可以编辑独立的C ++文件,但是你可能会失去#include和autocomplete等功能。我亲自把我的所有项目保存在Qt中,无论是一个简单的GUI程序执行一项任务,所以我可以调试它(gdb似乎不喜欢命令行程序,至少根据我的经验)或使用“简单的C ++”命令行“非Qt依赖项目的项目。
答案 3 :(得分:1)
或者我每次要编辑时都必须创建一个完整的项目 独立的C ++文件?
不,只需右键单击项目树的根目录 - 上下文菜单 - 添加现有文件,即可在现有项目中包含独立文件。您可以为其分配热键,以及从项目中删除文件,因此可以快速轻松地使用您喜欢的编辑器及其环境。您可以在打开文件时查看它。遗憾的是,没有命令行参数可以为独立文件分配默认项目(及其环境),以便在文件管理器中双击使用它。
希望它有所帮助。
答案 4 :(得分:0)
这取决于为当前项目定义的工具链。
工具链在Tools-Options-Build&amp;运行工具链。 大多数都是自动检测的,但您可以添加自己的。
没有默认的工具链,因此您需要一个项目,以便在为其选择的工具链中找到这些标题。
答案 5 :(得分:0)
add INCLUDEPATH to "project.pro" file
example for raspberry pi qt projects:
# Qt Creator can't find headers (says: “No such file or directory”)
# add compile includes
INCLUDEPATH += /home/user/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/libc/usr/include/ \
/home/user/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/libc/usr/include/arm-linux-gnueabihf/
# pi rootfs includes
INCLUDEPATH += /home/user/raspi/sysroot/usr/include/