我使用this official guide提供的说明在OSX Lion上编译了Qt。然后我尝试使用gcc hello_world.cpp -o hello_world
#include <QApplication>
int main(int argc, char **argv)
{
QApplication app (argc, argv);
return app.exec();
}
我遇到以下错误:
hello_world.cpp:1:10: fatal error: 'QApplication' file not found
#include <QApplication>
^
1 error generated.
答案 0 :(得分:3)
尝试改为#include <QtGui/QApplication>
答案 1 :(得分:3)
使用gcc的-I选项来提供其他包含位置。
gcc hello_world.cpp -I/path-to-qt/include -o hello_world
如果你这样使用它,你必须使用这样的包括:
#include <QtGui/QApplication>
如果您希望您的包含更短,如#include <QApplication>
,您可以提供多个包含这样的文件夹:
gcc hello_world.cpp -I/path-to-qt/include/QtCore -I/path-to-qt/include/QtGui -o hello_world
但这不是全部。您还必须提供库目录以及要链接的库,如下所示:
gcc hello_world.cpp -I/path-to-qt/include/QtCore -I/path-to-qt/include/QtGui -o hello_world -L/path-to-qt/lib -lQtCore -lQtGui
使用g ++也更好,因为你使用的是C ++。
g++ hello_world.cpp -I/path-to-qt/include/QtCore -I/path-to-qt/include/QtGui -o hello_world -L/path-to-qt/lib -lQtCore -lQtGui
答案 2 :(得分:2)
尝试使用g++ -I<path_to_include_directory> -L<path_to_library_dir> -lQtCore
。
例如,在我的Debian中,我会这样做:g++ -I/usr/local/include/Qt4 -L/usr/local/lib -lQtCore -lQtGui whatever.cpp
编辑:感谢@erelender指出QApplication
位于QtGui
库中,并且取决于QtCore
。
答案 3 :(得分:1)
不确定mac中的路径,但在Linux上的QApplication类 定义在以下位置(qt4)
/usr/include/qt4/QtGui/qwindowdefs.h
你在Mac上有类似的东西吗?
如果从命令行构建,包括带有gcc的头文件可以使用以下开关
完成-I<path to .h file>
答案 4 :(得分:1)
如果您尝试使用-I标志为gcc添加其他包含路径,该怎么办?类似的东西:
gcc -I/usr/local/Qt-5.1.1/include hello_world.cpp -o hello_world