Отсутствует libclang_rt.tsan-x86_64.a в clang-7.0
Я пытаюсь найти тупик в многопоточном коде, который использует переменную условия. Кто-то посоветовал использовать дезинфицирующее средство для нитей. Поэтому я скомпилировал LLVM из исходного кода и включил средство для очистки потоков
LLVM собран хорошо, но когда я пытаюсь построить свой проект, я сталкиваюсь с большим количеством предупреждений такого рода:
: && /home/dzenan/LLVM-rel/bin/clang++ -fsanitize=thread -Wall -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Wno-undefined-var-template -Woverloaded-virtual -w -O2 -g -DNDEBUG -fsanitize=thread Modules/ThirdParty/VNL/src/vxl/v3p/netlib/tests/CMakeFiles/netlib_lsmrTest2.dir/lsmrTest2.cxx.o -o bin/netlib_lsmrTest2 -Wl,-rpath,/home/dzenan/ITK-git-clang/lib lib/libitkv3p_netlib-5.0.so.1 -lm && :
/usr/bin/ld: cannot find /home/dzenan/LLVM-rel/lib/clang/7.0.0/lib/linux/libclang_rt.tsan-x86_64.a: No such file or directory
/usr/bin/ld: cannot find /home/dzenan/LLVM-rel/lib/clang/7.0.0/lib/linux/libclang_rt.tsan_cxx-x86_64.a: No such file or directory
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
[1507/5739] Building C object Modules/ThirdParty/VNL/src/vxl/v3p/netlib/CMakeFiles/itknetlib.dir/triangle.c.o
FAILED: bin/netlib_lsqrTest1
Что я делаю не так и как это исправить?
1 ответ
У меня тоже была эта пробема. В моем случае, хотя эти библиотеки и присутствовали в системе, их не было в том месте, где линкер мог бы их найти.
Я решил эту проблему одним выстрелом, запустив это в терминале, который я использовал для компиляции (замените путь вашим локальным эквивалентом):
export LD_LIBRARY_PATH=/lib64/clang/14.0.3/lib/linux/
Однако он применяется только к текущему терминалу. Возможно, вам придется повторять этот процесс каждый раз или использовать какой-либо постоянный способ настройки, чтобы он работал везде.