私は現在、更新に 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
そして無駄に。コンパイラから同じメッセージが引き続き表示されます。
誰でも私を助けることができますか?