3

Qt をインストールし、QtCreator でテンプレート プロジェクト (Qt4 Gui アプリケーション) をビルドしようとしました。これらのエラーが発生する理由がわかりません。

プロジェクト 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: エラー: 'list' はこのスコープで宣言されていませんでした
/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: エラー: 'vector' はこのスコープで宣言されていません
/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 にあるはずだと思いますが、コンパイル行がインクルードパスの1つとしてそれを明確に示しているので、おそらくそうではないと思います。

findそこにない場合は、コマンドラインで使用して、どこにあるかを調べることができます。

find /usr -name AvailabilityMacros.h

または、Macで利用可能なGUIメソッド(私はMacOSにあまり詳しくないことがわかります:))。ところで、上記のfindコマンドで何も得られない場合は、検索を から/usrに広げることができます/


結果の投稿に応じてfind:

MacOSX10.5.sdk に対してアプリケーションをビルドしようとしていますか? そうでない場合、それはあなたが望むバージョンではないと思います。10.5 SDK を使用している場合QMAKE_MAC_SDK、 qmake 変数を /Developer/SDKs/MacOSX10.5.sdk に設定する必要があります。プロジェクトファイルでこれを行うか、プロジェクト->ビルドステップでqmakeへの追加引数として設定できます。

于 2009-09-26T18:20:00.487 に答える
0

ありがとう、トルバドゥール。プロジェクトの.proファイルに次の行を追加することで問題を解決できました。

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

Mac OS X 10.6 SDKに対してビルドしたいのですが、/ Developer/SDKにそのようなディレクトリはありません。10.6 SDKの場所をご存知の場合は、お知らせください。

編集:最新バージョンのXcodeに更新した後、プロジェクトの.proファイルから上記の行を削除して、正常にコンパイルすることができました。

于 2009-09-26T21:34:53.323 に答える