【问题标题】:Can't include header file不能包含头文件
【发布时间】:2013-04-20 05:14:12
【问题描述】:

我需要在我的项目中包含来自 sqlite3x 库(或来自 sqlite)的头文件。我刚刚在 Qt Creator 中创建了新项目,并在 .pro-file 中添加了以下几行:

INCLUDEPATH += $$quote(D:/libs/libsqlite3x-2007.10.18) INCLUDEPATH += $$quote(D:/libs/sqlite-amalgamation-3071502)

然后我尝试包含

#include <sqlite3x.hpp>

并编译。

无法打开包含文件:'sqlite3.h':没有这样的文件或目录

为什么?

如果我写

#include <sqlite3.h>

我遇到了同样的错误。

当我编写这个预处理指令时,Qt Creator 会给我一个自动完成功能,如果我在这一行按 F2,它将打开这个文件。

http://pastie.org/7670341 http://pastie.org/7670574

【问题讨论】:

  • 你能添加 dir 或 ls -l 命令的输出来证明这个文件存在吗?
  • @PiotrNycz 完成 - pastie.org/7670341
  • 你能从构建日志中显示编译器命令行吗?
  • @Michael Burr 完成 - pastie.org/7670574
  • 你重新运行qmake了吗?两个 INCLUDEPATH 项目是否在不同的行中(不清楚它们是否在问题格式中)?

标签: c++ qt


【解决方案1】:

你需要

INCLUDEPATH += $$quote(D:/libs/libsqlite3x-2007.10.18) $$quote(D:/libs/sqlite-amalgamation-3071502)

如果你看到http://pastie.org/7670574 这些是包含指令

-I"D:\libs\libsqlite3x-2007.10.18" -I"D:\libs\Qt\Qt5.0.0\5.0.0\msvc2010\include" -I"D:\libs\Qt\Qt5 .0.0\5.0.0\msvc2010\include\QtWidgets" -I"D:\libs\Qt\Qt5.0.0\5.0.0\msvc2010\include\QtSql" -I"D:\libs\Qt\Qt5.0.0 \5.0.0\msvc2010\include\QtGui" -I"D:\libs\Qt\Qt5.0.0\5.0.0\msvc2010\include\QtCore" -I"发布" -I"。" -一世”。” -I"D:\libs\Qt\Qt5.0.0\5.0.0\msvc2010\mkspecs\win32-msvc2010"

如果你看 - 你看不到D:/libs/sqlite-amalgamation-3071502。您的构建工具没有拾取目录并将其添加到 INCLUDEPATH,因为它只拾取一个 INCLUDEPATH 行 - 所以两者都到同一 INCLUDEPATH 行,并用空格隔开。

【讨论】:

  • @NikitaTrophimov 上面的 make 输出是什么?
猜你喜欢
  • 2013-10-11
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2017-08-18
相关资源
最近更新 更多