4

古いサードパーティ ソフトウェアを OS X 10.9 でコンパイルしようとしています。おそらく 2005 年頃にgcc用に作成された Makefile の設定を調整することで、ほとんどのコンパイルの問題を取り除くことができました。ただし、現在、C++ ソース ファイルでこのエラーを解決する方法がわかりません。

/utility.h:42:10: 致命的なエラー: 'ext/slist' ファイルが見つかりません

STLext/slistのいくつかのバージョンに属していることを理解しています。そのバージョンは置き換えられましたか、それとも Apple の Clang/ LLVM (OS X 10.9 の場合は 5.0) のバージョンに対して特別な方法でアクティブ化する必要がありますか?

可能であれば、事前にインストールされたツールを使用してこのソフトウェアをコンパイルし、MacPorts 経由でgccをインストールするなどの手順を実行したくありません。

ところで、これらの警告も持続します。

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2: 警告: ヘッダーの使用は非推奨です。[-W#warnings] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_map:209:2 に移行: 警告: の使用ヘッダーは非推奨です。[-W#warnings] に移行

4

1 に答える 1

5

Slist は単一リンク リストであり、libstdc++ に含まれる拡張機能でした。Mac OS X は、libstdc++ から、C++11 標準ライブラリを提供する libc++ に移行しています。C++11 は、ヘッダーの std::forward_list という名前で単一リンク リストを提供します<forward_list>

libstdc++ はまだ開発者ツールに含まれていると思いますので、プロジェクトをそれに戻すこともできます。Xcode プロジェクトを使用している場合は、ビルド設定でライブラリを選択するか、プログラムが -stdlib=libstdc++ でビルドされていることを確認できます

于 2013-11-03T21:46:09.810 に答える