0
私は他のフレームワークにも依存するフレームワークに取り組んでいます。私は私のプロジェクトにSystemConfiguration
をリンクする場合でも、この警告が表示され、Xcode:フレームワークがプロジェクトにリンクされているかどうかのテスト
#ifndef _SYSTEMCONFIGURATION_H
#warning "The SystemConfiguration framework not found in project or not included in precompiled header, please make sure that it does"
#endif
問題がある:私のユーザーの統合プロセスを支援するために、私は特定のフレームワークがリンクされていない場合は、それらを警告するでしょうマクロを追加しました。
私は間違っていますか?ありがとう!
ありがとうございます。私は傘のヘッダをインポートし、テストアプリケーションからSystemConfigurationのリンクを解除すると、これまでどおり何のエラーも起こりません。 – Yotam
@ Yotam、あなたのフレームワークはSystemConfigurationでリレーしますか? SystemConfigurationとのリンクができればいいですね。 リンクはコンパイル後に実行されるため、コンパイラはジョブの実行後にどのフレームワークがリンクされるかの手掛かりがないため、コンパイル段階でこれをチェックする方法はありません。 このようなもので、実行時にそれを確認するためのオプションもあります。 '' 'BOOL isFrameworkLoaded =(! "MyClassNameFromTheFramework" @ NSClassFromString()= nilの);' '' –
andery.s @私は思いますできる場合はXcodeのようにリンク時エラーを発生させます。いくつかのフレームワークで提案したように 'NSClassFromString'を使用しましたが、SystemConfigurationなどのフレームワークでは、すべてのヘッダファイルを検索した後でも、定義されたクラスは見つかりませんでした。これは主にCの構造と変数です。 – Yotam