3

我安装了 Qt 并尝试在 QtCreator 中构建一个模板项目(Qt4 Gui Application)。我无法弄清楚为什么我会收到这些错误。

为项目 SourceControl 运行构建步骤...
配置不变,跳过 QMake 步骤。
开始:/usr/bin/make -w
make: 进入目录`/Users/jason/SourceControl'
g++ -c -pipe -g -gdwarf-2 -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Qt4.5/mkspecs/macx-g++ -I。-I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/usr/include/QtNetwork -I /Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/usr/include -I。-一世。-F/库/框架 -o main.o main.cpp
在 /Library/Frameworks/QtCore.framework/Headers/qnamespace.h:45 包含的文件中,
来自 /Library/Frameworks/QtCore.framework/Headers/qobjectdefs.h:45,
来自/Library/Frameworks/QtCore.framework/Headers/qobject.h:47,
来自/Library/Frameworks/QtCore.framework/Headers/qcoreapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/qapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/QApplication:1,
来自 main.cpp:1:
/Library/Frameworks/QtCore.framework/Headers/qglobal.h:297:34:错误:AvailabilityMacros.h:没有这样的文件或目录
在 /Library/Frameworks/QtCore.framework/Headers/qstring.h:46 包含的文件中,
来自 /Library/Frameworks/QtCore.framework/Headers/qobject.h:48,
来自/Library/Frameworks/QtCore.framework/Headers/qcoreapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/qapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/QApplication:1,
来自 main.cpp:1:
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:48:20:错误:string.h:没有这样的文件或目录
在 /Library/Frameworks/QtCore.framework/Headers/qobject.h:48 包含的文件中,
来自/Library/Frameworks/QtCore.framework/Headers/qcoreapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/qapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/QApplication:1,
来自 main.cpp:1:
/Library/Frameworks/QtCore.framework/Headers/qstring.h:60:22:错误:字符串:没有这样的文件或目录
在 /Library/Frameworks/QtCore.framework/Headers/qobject.h:50 包含的文件中,
来自/Library/Frameworks/QtCore.framework/Headers/qcoreapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/qapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/QApplication:1,
来自 main.cpp:1:
/Library/Frameworks/QtCore.framework/Headers/qlist.h:50:20:错误:迭代器:没有这样的文件或目录
/Library/Frameworks/QtCore.framework/Headers/qlist.h:51:16:错误:列表:没有这样的文件或目录
/Library/Frameworks/QtCore.framework/Headers/qlist.h:54:15:错误:新:没有这样的文件或目录
在 /Library/Frameworks/QtGui.framework/Headers/qbrush.h:47 包含的文件中,
来自 /Library/Frameworks/QtGui.framework/Headers/qpalette.h:47,
来自/Library/Frameworks/QtGui.framework/Headers/qwidget.h:48,
来自 /Library/Frameworks/QtGui.framework/Headers/qmainwindow.h:45,
来自/Library/Frameworks/QtGui.framework/Headers/QMainWindow:1,
从 mainwindow.h:4,
来自 main.cpp:2:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:52:18:错误:向量:没有这样的文件或目录
/Library/Frameworks/QtCore.framework/Headers/qvector.h:54:20:错误:stdlib.h:没有这样的文件或目录
在 /Library/Frameworks/QtCore.framework/Headers/qstring.h:46 包含的文件中,
来自 /Library/Frameworks/QtCore.framework/Headers/qobject.h:48,
来自/Library/Frameworks/QtCore.framework/Headers/qcoreapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/qapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/QApplication:1,
来自 main.cpp:1:
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:在函数'uint qstrlen(const char *)'中:
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:68:错误:未在此范围内声明“strlen”
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:在函数'int qstrncmp(const char*,const char*,uint)'中:
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:91:错误:未在此范围内声明“strncmp”
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:在函数'bool operator==(const QByteArray&,const QByteArray&)'中:
/Library/Frameworks/QtCore.framework/Headers/qbytearray.h:502:错误:未在此范围内声明“memcmp”
在 /Library/Frameworks/QtCore.framework/Headers/qobject.h:48 包含的文件中,
来自/Library/Frameworks/QtCore.framework/Headers/qcoreapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/qapplication.h:45,
来自 /Library/Frameworks/QtGui.framework/Headers/QApplication:1,
来自 main.cpp:1:
/Library/Frameworks/QtCore.framework/Headers/qstring.h:在全球范围内:
/Library/Frameworks/QtCore.framework/Headers/qstring.h:65:错误:'QList::fromStdList()'之前的预期初始化程序:
/Library/Frameworks/QtCore.framework/Headers/qlist.h:316:错误:未在此范围内声明“列表”
/Library/Frameworks/QtCore.framework/Headers/qlist.h:316:错误:“back_inserter”不是“std”的成员
在 /Library/Frameworks/QtGui.framework/Headers/qbrush.h:47 包含的文件中,
来自 /Library/Frameworks/QtGui.framework/Headers/qpalette.h:47,
来自/Library/Frameworks/QtGui.framework/Headers/qwidget.h:48,
来自 /Library/Frameworks/QtGui.framework/Headers/qmainwindow.h:45,
来自/Library/Frameworks/QtGui.framework/Headers/QMainWindow:1,
从 mainwindow.h:4,
来自 main.cpp:2:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:在全球范围内:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:293:错误:'QVector :: fromStdVector()'之前的预期不合格ID:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:294:错误:未在此范围内声明“向量”
/Library/Frameworks/QtCore.framework/Headers/qvector.h:294:错误:'back_inserter'不是'std'的成员
/Library/Frameworks/QtCore.framework/Headers/qvector.h:在构造函数'QVector :: QVector(int)[with T = QPoint]'中:
/Library/Frameworks/QtGui.framework/Headers/qpolygon.h:93:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:397:错误:没有匹配函数调用'operator new(long unsigned int, QPoint*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:在构造函数'QVector :: QVector(int)[with T = QPointF]'中:
/Library/Frameworks/QtGui.framework/Headers/qpolygon.h:152:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:397:错误:没有匹配函数调用'operator new(long unsigned int, QPointF*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qlist.h:在成员函数'void QList::node_construct(QList::Node*, const T&) [with T = QString]'中:
/Library/Frameworks/QtCore.framework/Headers/qlist.h:426:从 'void QList::append(const T&) [with T = QString]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qstringlist.h:70:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qlist.h:341:错误:没有匹配函数调用'operator new(long unsigned int, QList::Node*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qlist.h: 在成员函数'void QList::node_copy(QList::Node*, QList::Node*, QList::Node*) [with T = QString]' :
/Library/Frameworks/QtCore.framework/Headers/qlist.h:618:从 'QList& QList::operator+=(const QList&) [with T = QString]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qstringlist.h:85:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qlist.h:360:错误:没有匹配函数调用'operator new(long unsigned int, QList::Node*)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:在成员函数'void QVector :: realloc(int,int)[with T = QPoint]'中:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:315:从 'void QVector::detach_helper() [with T = QPoint]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:113:从 'QVector::QVector(const QVector&) [with T = QPoint]' 实例化
/Library/Frameworks/QtGui.framework/Headers/qpolygon.h:66:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:444:错误:没有匹配函数调用'operator new(long unsigned int, QPoint*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:484:错误:没有匹配函数调用'operator new(long unsigned int, QPoint*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:491:错误:没有匹配函数调用'operator new(long unsigned int, QPoint*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:在成员函数'void QVector::realloc(int, int) [with T = QPointF]'中:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:315:从 'void QVector::detach_helper() [with T = QPointF]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:113:从 'QVector::QVector(const QVector&) [with T = QPointF]' 实例化
/Library/Frameworks/QtGui.framework/Headers/qpolygon.h:131:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:444:错误:没有匹配函数调用'operator new(long unsigned int,QPointF *&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:484:错误:没有匹配函数调用'operator new(long unsigned int,QPointF *&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:491:错误:没有匹配函数调用'operator new(long unsigned int, QPointF*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:在成员函数'void QVector::realloc(int, int) [with T = QPainterPath::Element]'中:
/Library/Frameworks/QtCore.framework/Headers/qvector.h:315:从'void QVector::detach_helper() [with T = QPainterPath::Element]'实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:129:从 'void QVector::detach() [with T = QPainterPath::Element]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:228:从 'T* QVector::begin() [with T = QPainterPath::Element]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:241:从 'T& QVector::first() [with T = QPainterPath::Element]' 实例化
/Library/Frameworks/QtGui.framework/Headers/qpainterpath.h:370:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:444:错误:没有匹配函数调用'operator new(long unsigned int, QPainterPath::Element*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:315:从'void QVector::detach_helper() [with T = QPainterPath::Element]'实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:129:从 'void QVector::detach() [with T = QPainterPath::Element]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:228:从 'T* QVector::begin() [with T = QPainterPath::Element]' 实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:241:从 'T& QVector::first() [with T = QPainterPath::Element]' 实例化
/Library/Frameworks/QtGui.framework/Headers/qpainterpath.h:370:从这里实例化
/Library/Frameworks/QtCore.framework/Headers/qvector.h:484:错误:没有匹配函数调用'operator new(long unsigned int, QPainterPath::Element*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
/Library/Frameworks/QtCore.framework/Headers/qvector.h:491:错误:没有匹配函数调用'operator new(long unsigned int, QPainterPath::Element*&)'
:0: 注意:候选人是:void* operator new(long unsigned int)
make: *** [main.o] 错误 1
make: 离开目录 `/Users/jason/SourceControl'
以代码 2 退出。
构建项目 SourceControl 时出错
执行构建步骤“Make”时
4

2 回答 2

3

我不确定,但我想你应该关注第一个错误,它说它找不到AvailabilityMacros.h。我认为这应该在 /usr/include 中,但我猜它可能不是,因为您的编译行清楚地表明它是包含路径之一。

find如果它不在那里,您可以尝试通过在命令行上使用来找出它在哪里,例如。

find /usr -name AvailabilityMacros.h

或 Mac 上可用的任何 GUI 方法(您可以说我对 MacOS 不太熟悉 :))。顺便说一句,如果上述find命令没有产生任何结果,那么您可以将搜索范围从 扩大/usr/.


回应您发布的find结果:

您是否正在尝试针对 MacOSX10.5.sdk 构建您的应用程序?如果不是,那么我认为这不是您想要的版本。如果您使用的是 10.5 SDK,那么您需要将QMAKE_MAC_SDKqmake 变量设置为 /Developer/SDKs/MacOSX10.5.sdk。您可以在项目文件中执行此操作,也可以在 Projects->Build steps 中将其设置为 qmake 的附加参数。

于 2009-09-26T18:20:00.487 回答
0

谢谢,游吟诗人。通过将以下行添加到项目的 .pro 文件中,我能够解决该问题:

QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk

我更愿意针对 Mac OS X 10.6 SDK 构建,但 /Developer/SDKs 中没有这样的目录。如果您知道我在哪里可以找到 10.6 SDK,请告诉我。

编辑:更新到最新版本的 Xcode 后,我能够从项目的 .pro 文件中删除上面指示的行并成功编译。

于 2009-09-26T21:34:53.323 回答