Какой пакет мне нужен для использования clang с asan для 32 бит?

Я получаю эту ошибку при компиляции с 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.

2
задан 1 March 2016 в 16:10

2 ответа

Как другие заявили, это - ошибка в пути, которые лязгают 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

0
ответ дан 2 March 2016 в 02:10

по-видимому, существует ошибка , что asan отсутствует в лязге 3.7 и 3.8.

о проблеме на 32 бита с 3,6 - я думаю, что мне нужно libclang-3.6-dev:i386 и libclang-common-3.6-dev:i386 - не протестированный все же - из-за ЭТО

0
ответ дан 2 March 2016 в 02:10
  • 1
    Thanks.@tso,it уже сохранил файлы как c\c ++, поэтому я didn' t хотят поместить " .c" расширение после названия файла. Теперь я попробовал его, и это работало! – Ajab Sharma 29 May 2017 в 04:08

Другие вопросы по тегам:

Похожие вопросы: