5

私は現在、更新に Sparkle フレームワークを利用する Qt C++ フレームワークに基づくプロジェクトを構築しています。私が経験している問題は、Sparkle フレームワークを含める場合を除いて、アプリケーション全体が正常にビルドされることです。

Sparkle.framework ディレクトリは /Library/Frameworks ディレクトリにあります。

私の .pro ファイルには次のものがあります。

QMAKE_LFLAGS += -F /Library/Frameworks
LIBS += -framework Sparkle

私の SparkleUpdater クラスには、次のヘッダーがあります。

#include <Sparkle/Sparkle.h>
#include "SparkleUpdater.h"

Qt Creator のインクルードにカーソルを合わせると、以下を含むスパークル フレームワークへのパスの通知が表示されます。 .framework は私のマシンに存在します。

ただし、プロジェクトをビルドすると、コンパイラから次のようになります。

SparkleUpdater.mm:2:29: error: Sparkle/Sparkle.h: No such file or directory
SparkleUpdater.mm:10: error: ISO C++ forbids declaration of 'SUUpdater' with no type
SparkleUpdater.mm:10: error: expected ';' before '*' token
SparkleUpdater.mm: In constructor 'SparkleUpdaterPrivate::SparkleUpdaterPrivate()':
SparkleUpdater.mm:9: error: class 'SparkleUpdaterPrivate' does not have any field named      'updater'
SparkleUpdater.mm: In constructor 'SparkleUpdater::SparkleUpdater(const QString&, bool)':
SparkleUpdater.mm:17: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm:17: error: 'SUUpdater' was not declared in this scope
SparkleUpdater.mm:18: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm:22: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm:24: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm: In destructor 'virtual SparkleUpdater::~SparkleUpdater()':
SparkleUpdater.mm:30: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm: In member function 'virtual void        SparkleUpdater::checkForUpdates(bool)':
SparkleUpdater.mm:40: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm:41: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
SparkleUpdater.mm:45: error: 'class SparkleUpdaterPrivate' has no member named 'updater'
make[1]: *** [SparkleUpdater.o] Error 1

マシンの Sparkle フレームワークを削除して置き換えようとしました。これでヘッダーフォルダーを明示的に含めようとしました:

INCLUDEPATH += -F /Library/Frameworks

INCLUDEPATH += -F /Library/Frameworks/Sparkle.framework/Versions/A

そして無駄に。コンパイラから同じメッセージが引き続き表示されます。

誰でも私を助けることができますか?

4

2 に答える 2

0

それはそれを行う必要があります:

cd /Library/Frameworks/Sparkle.framework/Headers

ln -s ../Headers Sparkle

于 2012-07-31T12:37:08.293 に答える