-1

ZXing バーコード スキャン ライブラリを使用する iPhone プロジェクトを作成しました。CocoaPods を使用して ZXing を追加しましたが、システム (Xcode 4.5 (4G182) を使用した Mountain Lion) でコンパイルすると完全に動作します。しかし、エンタープライズ配布用の署名付き ipa の作成担当者にそれを渡すと、私が理解していることから、同じバージョンの Xcode も使用していることがわかり、コンパイル時に次の解析エラーが表示されます。

Parse Issue
Expected unqualified-id in file included from /The/Absolute/Path/to/Pods/ZXing/objc/src/ZXing/ZXBinarizer.mm

強調表示されている行は次のとおりです。

#import <ZXing/ZXBinarizer.h>
        ^

私は WebEx 経由で彼のシステムを調べることができ、ヘッダーの検索パスを確認しました。CocoaPods 経由で設定されたように見える値は、ファイルの実際の場所に解決されます。

問題ナビゲーターの「問題の解析」行をクリックすると、次のようにしか表示されませんでした。

../../ZXing/objc/src/ZXing/ZXBinarizer.h
^

解決策を求めて Web をかなり検索しましたが、「Expected unqualified-id」への参照がたくさんありますが、それらのほとんどは不正なコードが原因です。

Xcode についてはまだ理解できないことがかなりあります。そのため、ここで簡単なことを見落としていることを誰かが教えてくれることを願っています。

4

3 に答える 3

0

依存関係の管理に CocoaPods を使用するのをやめて、プロジェクトを手動で含める必要がありました。問題は他人のマシンにあったのですが、自分では問題なく動作したため、本当の原因を特定できませんでした。私のプロジェクトに ZXing を直接含めたところ、彼はそれをコンパイルすることができました。

于 2012-10-05T22:46:53.187 に答える
0

smcmahon さん、私は CocoaPods を使用して iOS プロジェクトをビルドし、これらの奇妙なエラーを表示するという非常によく似た問題を抱えていましたが、問題を解決することができました。CocoaPods が作成したシンボリック リンク ( などZXing/ZXBinarizer.h) が実際にシンボリック リンクであり、ファイルパスを含む通常のテキスト ファイルだけではないことを確認してください。

もう少し詳細な説明は私のブログにあります: http://www.egeek.me/2013/01/26/note-about-building-cocoapods-powered-ios-projects/

これが役立つことを願っています。

于 2013-01-27T20:36:01.520 に答える
0

コンパイルされている正確なコードへのリンクを投稿すると役立ちます。

を使用clang -Eして、前処理後のコードがどのように見えるか (すべての #imports が展開された状態) を確認し、次にdiff、同僚のシステムでの同じコマンドの出力に対して、システムで前処理された出力を確認できます。

http://code.google.com/p/zxing/source/browse/trunk/objc/src/ZXing/ZXBinarizer.hNSObjectで、最初に #import せずに参照 していることがわかり<Foundation/Foundation.h>ます。これは悪い考えですが、おそらく実際の問題ではありません。(それが原因である場合、別のエラーメッセージが表示されると思います。)

同僚が ZXBinarizer.mm を通常の C++ としてではなく、Objective-C++ としてコンパイルしていることを 100% 確信していますか?

Xcode がエラーの特定のファイルおよび行情報を提供しないことを 100% 確信していますか? Xcode が実際に行を指している場合#import、その行の前後の 10 行、および #import されているファイルの最初の 10 行を投稿できますか?

于 2012-10-04T21:22:10.967 に答える