1

私は iOS アプリを開発しており、Boost ライブラリの共有ポインタを使用しています。私のアプリは少し分厚いので、それを傾けようとしています。この行を移動すると思います:

#include <boost/shared_ptr.hpp>

個々のファイルからプリコンパイル済みヘッダー ファイルまで、スペースを節約できます。

この行を pch ファイルに移動すると、大量のコンパイル時エラーが発生します。そのほとんどは次のとおりです。

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'boost'

情報で .pch ファイルを sourcecode.cpp.h ファイルに変更しましたが、それは役に立ちませんでした。

考え?

編集:私のバイナリにコンパイルされた shared_ptr の重複コピーが実際にあることを確認しました!

4

2 に答える 2

1

プロジェクトにはおそらくCまたはObjCソースがあります。

その場合:

#if defined(__cplusplus)
#include <boost/shared_ptr.hpp>
#endif

Xcode(デフォルト)は、プロジェクト内のすべての言語/方言のプレフィックスを作成します。作成されない場合でも、手動で作成されます#include。残念ながら、ヘッダーをpchに移動すると、重複を追加することしかできませんでした。ただし、ビルド時間を短縮できます。

于 2012-01-31T08:26:06.800 に答える
1

Boost ヘッダーは .m ファイルまたは .mm ファイルに含まれていますか? 最初のケースではコンパイラは Objective-C を使用し、2 番目のケースでは Objective-C++ を使用するためです。

于 2012-01-31T08:20:11.733 に答える