2016-09-02 3 views
2

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を使うことに決めたことは何ですか?私はプロジェクトの設定とコンパイラの出力をチェックしており、このパスの明示的なインクルードはありませんでした。

答えて

0

AppleClang 7+やlibC++は、OSX SDK 10.7のvecLibをサポートしていないようです。それを構築するにはXcode 6に戻らなければなりませんでした。

関連する問題