0

これらの指示に従って、 core-plotを iPhone プロジェクトにインストールしようとしています。Coreplot では LLVM gcc 4.2 コンパイラを使用する必要があり、これが表記の問題を引き起こしています。

私は LLVM gcc 4.2 を使用しているため、@autorelease 表記により、main.m で「Expected expression before '@' token」というエラーが生成されます。

int main(int argc, char *argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }

}

このため、@autoreleasepool 表記を取り除き、main を次のように変更しました。

int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    [pool release];
    return retVal;
}

ただし、ARCを使用しているため、これにより「NSAutoreleasePool is available」エラーが発生します。そのため、-fno-objc-arcコンパイラフラグをmain.mに追加しました。これにより、「認識されないコマンドラインオプション「-fno-objc-arc」が表示されました。エラー。

プロジェクトで ARC を使用しているときに LLVC gcc 4.2 を使用することによって発生する表記の問題を解決する方法はありますか?

4

1 に答える 1

0

ARC は gcc-llvm では使用できません。いくつかのオプションがあります。CorePlot をスタティック ライブラリとして個別にビルドし、それをプロジェクトにリンクすることができます。CorePlot プロジェクト ファイルを自分のファイルに埋め込んで、独自のビルド構成で依存関係としてビルドすることもできます。CorePlot を clang に切り替えることもできます。カスタム C オプションを削除したら、1.0 をビルドしました。ARC は非 ARC コードと問題なく統合できます。

于 2012-06-07T20:40:59.527 に答える