Xcode 7.3でLLVM(7+)とC++ 11でMac SDK 10.7からプロジェクトをコンパイルする際に重大な問題があります。問題の原因は、XcodeまたはOSX 10.11を実行しているということになります。私の一部の同僚は、古いXCodeバージョン(6)で同じ問題をコンパイルするのと同じ問題はありません。Xcode 7.3とCMakeでOSX SDK 10.7を使用する
必要なライブラリとヘッダーはCMakeとリンクしています。すべてのパスをインクルードして複数回チェックしました。作成されたXCodeプロジェクトもOKであると思われます。プロジェクトをコンパイルするシステムに対して、重要な設定(C++ダイアレクト、標準ライブラリ、ターゲット、定義など)を比較しました。
VECLIB source.Itをコンパイルすると、私は戻って、C++のstdヘッダの欠如にトレースしますランダムエラーメッセージのセットであると考えられるとき、実際にエラーが来る...ここではいくつかの例は以下のとおりです。
Explicite specialization of non-template class 'complex'
Redifinition of complex as different kind of symbol
古いSDKに対して新しいXCodeを使用している場合、同様の問題が発生しましたか?
EDITは、ここではいくつかのより多くの情報です。再編成の背後にあるものを確認した後、何らかの奇妙な理由のために、ファイル内の前方宣言に干渉する複雑な定義が/usr/include/c++/4.2.1から出てくることがわかりました。私はヘッダーが古いか、少なくともC++ 11と互換性がないと思う。私はコンパイラが使用したものと、lib/language(std = C++ 11とstdlib = libC++)が正しく設定されている場所を再度確認しました。私はユーザー/インクルードのソースが含まれていないと思われる不思議な気持ちがありますが、私はそれを修正する方法がわかりません。私は、標準をチェックしました
EDIT 2
はcpp -v
とパスが含まれており、以下のリストだ:XCodeのツールチェーン(第三エントリ)における複合体の定義が正しい
/usr/local/include
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/bin/../lib/clang/7.3.0/include
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/include
/usr/include
/System/Library/Frameworks
/Library/Frameworks
を1つは、コンパイル時に使用されると思われる/ usr/includeの定義で、エラーメッセージが表示されます。 complex
の定義には構造体が使用されています。
ここで問題は何ですか? XCode/Clangや、toolchainの代わりにusr/includeを使うことに決めたことは何ですか?私はプロジェクトの設定とコンパイラの出力をチェックしており、このパスの明示的なインクルードはありませんでした。