Компилятор C не может создавать исполняемые файлы во время сборки Coreutils с LLVM

Мне нужна помощь в поиске решения проблемы, возникающей при выполнении команды configure Coreutils с помощью llvm.

Использую команду:

CC=wllvm ../configure --disable-nls CFLAGS="-g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES -D_FORTIFY_SOURCE=0 -U__OPTIMIZE__"

и получите ошибки:

checking whether the compiler works...no
configure: error: in '/home/abhinath/coreutils/obj-llvm
configure: error: c compiler cannot create executables

Я заранее выполнил команду export LLVM_COMPILER=clang

Я установил и настроил clang-6.0 и clang ++ - 6.0 в своей ОС Ubuntu с помощью команд

sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-6.0 1000
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-6.0 1000
sudo update-alternatives --config clang
sudo update-alternatives --config clang++

Здесь можно просмотреть файл config.log с сгенерированными ошибками, который также показывает wllvm: command not found:

https://drive.google.com/open?id=1ExbLhT2tWRyGSAb67mAgu6


person Abhinath Kumar    schedule 20.03.2020    source источник
comment
CC=wllvm - что такое wllvm? Компилятор C llvm называется clang.   -  person Mat    schedule 20.03.2020
comment
@Mat wllvm - это компилятор C, часть всей программы-llvm (WLLVM). Я следую инструкциям из руководств на github klee. В частности, шаг 3 отсюда klee.github.io/tutorials/testing-coreutils   -  person Abhinath Kumar    schedule 20.03.2020
comment
Ok. Взгляните на свой файл журнала и узнайте, что в нем говорится о wllvm   -  person Mat    schedule 20.03.2020
comment
@Mat Я просмотрел журналы, и там написано, что wllvm: command not found, как вы тоже можете видеть. Не знаю, как с этим справиться   -  person Abhinath Kumar    schedule 20.03.2020
comment
Вы искали в своей системе программу wllvm? Где это установлено?   -  person Some programmer dude    schedule 20.03.2020
comment
Если вы сделали pip install wllvm как пользователь без полномочий root, вероятно, он установил исполняемые файлы где-то, кроме вашего PATH. Вам, вероятно, придется найти этот каталог и добавить его. Вам, вероятно, следует убедиться, что вы можете скомпилировать и запустить hello world с wllvm, прежде чем пытаться продолжить.   -  person Nate Eldredge    schedule 20.03.2020
comment
@Someprogrammerdude его устанавливается с помощью pip install --upgrade wllvm. так что он находится в /usr/local/lib/python2.7/site-packages   -  person Abhinath Kumar    schedule 20.03.2020
comment
@NateEldredge А, понятно. Я использовал команду sudo -H python -m pip install wllvm, и она сработала!   -  person Abhinath Kumar    schedule 20.03.2020


Ответы (1)


Обычно ничего из /usr/local не включается в системные каталоги.

А нестандартная локация типа usr/local/lib/python2.7/site-packages/some-directory тем более.

Вам нужно найти точное местоположение (как полный и абсолютный путь) программы wllvm и либо использовать этот полный путь, либо добавить ее каталог в переменную среды PATH.

person Some programmer dude    schedule 20.03.2020
comment
sudo -H python -m pip install wllvm казалось, уловка, и теперь это работает. - person Abhinath Kumar; 20.03.2020