3

Cygwin (32 ビット) で最新バージョンの clang++ (v3.1) および g++/gcc (v4.7.3) を実行しています。すべてがインストールされたデフォルト構成を使用しています。これは、Windows 8 での Cygwin の新規インストールです。

私の問題は、clang++ がインストールされた g++ STL ヘッダーを見つけてプロジェクトをコンパイルできないことです。

    #include <stdlib.h>
    #include <mutex>
    #include <thread>

    int main() {
        std::mutex myMutext;
        return 0;
    }

このサンプル コードをコンパイルすると、このエラーが発生します。libc stdlib.h ヘッダーがエラーなしでコンパイルされることに注意してください。見つからないということです。テストとして他のSTLヘッダーを試しましたが、同じエラーです。

clang++ -c -o test.o test.cpp

    test.cpp:2:10: fatal error: 'mutex' file not found
    #include <mutex>
              ^
    1 error generated.

いくつかの検索の後、提案されたオプションは、clang プロジェクト全体を再コンパイルし、そのソースにヘッダー パスを追加するか、すべての g++ STL ヘッダー パスをメイクファイルに手動で追加することであると思われます。

もっと簡単なオプションが必要ですよね?

4

2 に答える 2

2

解決したかどうかはわかりませんが、もっと簡単な解決策があります。4.7.3 から 4.5.3 への symlink を作成し、コードを -lstdc++ オプションでコンパイルするだけで、すべて完了します。

于 2013-10-29T13:25:47.717 に答える