Я пытаюсь скомпилировать программу, которую я нашел в Интернете, используя Clang ++. Makefile генерирует команду:Что может заставить clang не найти заголовок 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
Но я получаю
src/main.cpp:23:10: fatal error: 'unordered_map' file not found
#include <unordered_map>
^
1 error generated.
Если я скомпилировать простую программу, которая включает в себя <unordered_map>
работает clang++ test.cpp
, он собирает мелкий.
Я на
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
Если вы скомпилируете свою простую тестовую программу с помощью 'clang ++ (те опции) test.cpp', это тоже не сработает. В этот момент вы можете просто начать удаление опций, чтобы увидеть, какая из них вызывает проблему. (Начать с фронта. Это один из первых.) – hvd
Странно, что 'clang ++ test.cpp' компилируется, так как' 'требует C++ 11 (' -std = C++ 11') ... –
Jarod42
Какая версия вашего libstdC++? Вы скомпилировали 'test.cpp' с помощью libstdC++? – user2079303