Tôi đang cố gắng biên dịch một chương trình tôi tìm thấy trên web bằng cách sử dụng Clang ++. Các Makefile tạo lệnh này:Điều gì có thể khiến bạn không tìm thấy tiêu đề unordered_map?
clang++ -c -arch x86_64 -msse3 -std=c++11 -stdlib=libstdc++
-Wno-missing-field-initializers -Wno-missing-prototypes -Wreturn-type
-Wno-non-virtual-dtor -Wno-exit-time-destructors -Wformat -Wmissing-braces
-Wparentheses -Wno-switch -Wunused-function -Wunused-label -Wno-unused-parameter
-Wunused-variable -Wunused-value -Wno-empty-body -Wuninitialized -Wunknown-pragmas
-Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion
-Wint-conversion -Wno-shorten-64-to-32 -Wenum-conversion -Wno-newline-eof
-Wno-c++11-extensions -Wno-logical-op-parentheses -Wno-trigraphs
-Wno-invalid-offsetof -Wno-sign-conversion -Wdeprecated-declarations
-fmessage-length=0 -fno-exceptions -fstrict-aliasing -fvisibility=hidden
-fvisibility-inlines-hidden -funsafe-math-optimizations -ftrapping-math -fno-rtti
-fpascal-strings -fasm-blocks -O3 -Iinclude/ src/main.cpp
Nhưng tôi nhận được
src/main.cpp:23:10: fatal error: 'unordered_map' file not found
#include <unordered_map>
^
1 error generated.
Nếu tôi biên soạn một chương trình đơn giản bao gồm <unordered_map>
chạy clang++ test.cpp
, nó biên dịch tốt.
Tôi đang trên
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
Nếu bạn biên dịch chương trình thử nghiệm đơn giản của bạn với 'clang ++ (các tùy chọn này) test.cpp', nó cũng sẽ thất bại. Tại thời điểm đó, bạn chỉ có thể bắt đầu xóa các tùy chọn để xem tùy chọn nào gây ra sự cố. (Bắt đầu từ phía trước. Đây là một trong những đầu tiên.) – hvd
Lạ lùng rằng 'clang ++ test.cpp' biên dịch, vì' 'yêu cầu C++ 11 (' -std = C++ 11') ... –
Jarod42
Phiên bản libstdC++ của bạn là gì? Bạn đã biên dịch 'test.cpp' với libstdC++ chưa? – user2079303