2

新しい C++ プロジェクトを (Xcode 4.6 で) セットアップしていますが、新しい C++11 標準の機能 (ラムダ式、自動など) を使用したいと考えています。この前の質問に対する Darson の回答を使用して、Gnu Scientific Library (GSL) をこのプロジェクトに (静的に) リンクしようとしています。ただし、彼の回答は、新しい C++11 機能をサポートしていない LLVM GCC 4.2 にコンパイラを変更することを提案しています。

デフォルトの Apple LLVM コンパイラ 4.2 に変更すると、ビルドが失敗し、Xcode が新しい「libc++」STL のヘッダーのセマンティックの問題 (宣言されていない識別子、不明な型名など) を追跡するエラーの長いリストが表示されます。

私の質問は、新しい C++11 標準で GSL を使用する方法を見つけた人はいますか? 必ずしも Xcode である必要はありません。任意の (UNIX) IDE またはビルド環境を快適に使用できます。

4

1 に答える 1

1

私は自分の質問を解決することができたので、これに苦労している可能性のある人と共有したいと思いました.

私が推測したように、私の GSL インストール (macports から) が「古い」STL (libstdc++) に対してビルドされたために問題が発生しました。したがって、私の解決策は、「新しい」STL (libc++) に対して GSL を再コンパイルすることでした。これは、ソースを解凍して実行することで簡単に実行できます

./configure CC=clang CFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++"

--disable-sharedまた、静的ライブラリのみをビルドし--prefix=...、ビルド パスを設定するように追加しました。あとはmakeandを実行するだけmake installです。

于 2013-04-04T12:01:49.520 に答える