Я получаю эту ошибку при компиляции с clang++
и -fsanitize=address -m32
:
/usr/bin/ld: cannot find /usr/lib/llvm-3.6/bin/../lib/clang/3.6.0/lib/linux/libclang_rt.asan-i386.a: No such file or directory
/usr/bin/ld: cannot find /usr/lib/llvm-3.6/bin/../lib/clang/3.6.0/lib/linux/libclang_rt.asan_cxx-i386.a: No such file or directory
Какой пакет мне нужен? Я уже пробовал с libclang-3.6-dev
Я также получил ошибку для clang 3.7
с -m64
:
/usr/bin/ld: cannot find /usr/lib/llvm-3.7/bin/../lib/clang/3.7.1/lib/linux/libclang_rt.asan-x86_64.a: No such file or directory
/usr/bin/ld: cannot find /usr/lib/llvm-3.7/bin/../lib/clang/3.7.1/lib/linux/libclang_rt.asan_cxx-x86_64.a: No such file or directory
Ошибка -m64
для clang 3.7 (и 3.8) происходит только на travis-ci - это означает, что у меня нет проблем с 3.4 / 3.5 / 3.6.
Как другие заявили, это - ошибка в пути, которые лязгают 3.7 и лязгают 3.8, были упакованы: https://llvm.org/bugs/show_bug.cgi? id=22757
К счастью, фиксируя поврежденные пакеты после установки не тверд. Просто необходимо загрузить корректные библиотеки и поместить их в корректный каталог.
Первый, перейдите в http://llvm.org/releases/download.html и найдите версию соответствия. Я запускаю 64-разрядную Ubuntu 14.04, так для исправления лязга 3.8 я хочу "Лязг для x86_64 Ubuntu 14.04". Загрузите непосредственно или скопируйте щелчок правой кнопкой, и "Копируют Адрес канала" и используют wget:
wget http://llvm.org/releases/3.8.0/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz
Распакуйте:
tar -xf clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz
Затем копируют файлы библиотеки (использующий-n, чтобы не перезаписывать существующие файлы):
sudo cp -n clang+llvm-3.8.0-x86_64-linux-gnu/lib/clang/3.8.0/lib/linux/*.a /usr/lib/llvm-3.8/lib/clang/3.8.0/lib/linux/
При желании повторитесь для любых более старых версий лязга, который Вы установили, хотя примечание, что при использовании ядра Linux, более свежего, чем 4,1 с версией лязга ранее, чем 3,8, можно встретиться с другой ошибкой с-fsanitize=memory: https://llvm.org/bugs/show_bug.cgi? id=24155
по-видимому, существует ошибка , что asan отсутствует в лязге 3.7 и 3.8.
о проблеме на 32 бита с 3,6 - я думаю, что мне нужно libclang-3.6-dev:i386
и libclang-common-3.6-dev:i386
- не протестированный все же - из-за ЭТО