【问题标题】:make can't find Qt headers when compiling project on the command linemake在命令行编译项目时找不到Qt头文件
【发布时间】:2012-01-07 00:05:09
【问题描述】:

我正在尝试在命令行上编译一个 Qt Creator 项目。这就是我所做的。

$ qmake
$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DALLOWSYNCING -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -o main.o main.cpp
In file included from ./model/videostream.h:4:0,
                 from ./model/videostreamersession.h:4,
                 from view/videoplayerwindow.h:4,
                 from main.cpp:3:
./model/videoframe.h:5:18: fatal error: QImage: No such file or directory
compilation terminated.
make: *** [main.o] Error 1

看起来make 找不到 Qt 相关类的头文件。如何使用附加参数或环境变量告诉make 在哪里可以找到它们?我注意到默认情况下包含一些搜索路径,但在我的环境中它们位于/opt/QtSDK/Desktop/Qt/474/gcc/include/


根据要求,我的 PRO 文件。它最初是由 Qt Creator 生成的,所以没什么特别的。

QT += core gui

TARGET = output
TEMPLATE = app

SOURCES += # Trimmed for brevity
HEADERS += # Trimmed for brevity

# Special build flags
DEFINES += ALLOWSYNCING

# These libraries are required for the program to operate
LIBS += -ljrtp -ljthread

【问题讨论】:

  • 看起来正确。 /usr/include/qt4/QtGui 和 /usr/include/qt4/QtGui/QImage 是否存在? (也许您以某种方式安装了 qmake 发行版软件包,但没有安装 -dev 软件包?)如果您想使用 SDK,请按照 synthesizerpatel 的建议将其 bin/ 目录添加到 PATH。

标签: qt qt-creator


【解决方案1】:

CXXFLAGS="-I/opt/QtSDK/Desktop/Qt/474/gcc/include/" CFLAGS="-I/opt/QtSDK/Desktop/Qt/474/gcc/include/" LDFLAGS="/opt /QtSDK/Desktop/Qt/474/gcc/lib" 制作

但是,我猜你可能在 Mac 上。在这种情况下,你应该只导出 QT_DIR=/opt/QtSDK/Desktop/Qt/474/,然后添加 /opt/QtSDK/Desktop/Qt/ 474/bin 到你的 PATH 中,一旦 qmake 运行,它应该让所有东西都到位。

【讨论】:

  • 它是 QTDIR,不需要设置它。只需将 qmake 添加到 PATH 即可。
  • 直接运行/opt/QtSDK/Desktop/Qt/474/gcc/bin/qmake 似乎有效。谢谢!
猜你喜欢
  • 2013-10-12
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多