URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4231
[ Назад ]

Исходное сообщение
"Не работает компилятор"

Отправлено iqpi , 04-Май-15 21:00 
Freebsd 10.1
При сборке пакетов
make[4]: "/usr/share/mk/bsd.compiler.mk" line 9: warning: Couldn't read shell's output for "cc --version"
make[4]: "/usr/share/mk/bsd.compiler.mk" line 17: Unable to determine compiler type for cc.  Consider setting COMPILER_TYPE.

/usr/share/mk/bsd.compiler.mk

# $FreeBSD: releng/10.1/share/mk/bsd.compiler.mk 247527 2013-03-01 03:25:43Z brooks $

.if !defined(COMPILER_TYPE)
. if ${CC:T:Mgcc*}
    COMPILER_TYPE:=    gcc  
    . elif ${CC:T:Mclang}
    COMPILER_TYPE:=    clang
    . else
    _COMPILER_VERSION!=    ${CC} --version
    .  if ${_COMPILER_VERSION:Mgcc}
    COMPILER_TYPE:=    gcc
    .  elif ${_COMPILER_VERSION:M\(GCC\)}
    COMPILER_TYPE:=    gcc
    .  elif ${_COMPILER_VERSION:Mclang}
    COMPILER_TYPE:=    clang
    .  else
    .error Unable to determine compiler type for ${CC}.  Consider setting COMPILER_TYPE.
    .  endif
    .  undef _COMPILER_VERSION
    . endif
    .endif

.if ${COMPILER_TYPE} == "clang"
COMPILER_FEATURES=    c++11
.else
COMPILER_FEATURES=
.endif


Содержание

Сообщения в этом обсуждении
"Не работает компилятор"
Отправлено iqpi , 05-Май-15 17:25 
pkg info -a находит

gcc-4.8.4  
clang-devel-3.7.r234164
clang36-3.6.0


gcc -v
gcc: not found

clang -v
без ответа


"Не работает компилятор"
Отправлено а , 05-Май-15 18:58 
а по полному пути?
/usr/bin/clang -v
/usr/bin/gcc -v
/usr/bin/cc -v

"Не работает компилятор"
Отправлено iqpi , 05-Май-15 19:07 
> а по полному пути?
> /usr/bin/clang -v
> /usr/bin/gcc -v
> /usr/bin/cc -v

По этим путям файлы есть по 0 байт, пустые, gcc вообще нет.


"Не работает компилятор"
Отправлено iqpi , 05-Май-15 20:34 
Что сделать, чтоб всё работало?


"Не работает компилятор"
Отправлено b , 05-Май-15 21:51 
попробовать снести через pkg delete gcc/clang и переустановить их из пакетов.



"Не работает компилятор"
Отправлено iqpi , 05-Май-15 22:04 
> попробовать снести через pkg delete gcc/clang и переустановить их из пакетов.

gcc снес, установил и ничего не изменилось


pkg delete clang
Checking integrity... done (0 conflicting)
Package(s) not found!

После установки gcc пишет не пойму к чему, даже с переводчиком

To ensure binaries built with this toolchain find appropriate versions
of the necessary run-time libraries, you may want to link using

  -Wl,-rpath=/usr/local/lib/gcc48

For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens
transparently.


"Не работает компилятор"
Отправлено c , 05-Май-15 23:51 
> pkg delete clang
> Checking integrity... done (0 conflicting)
> Package(s) not found!

наверно потомучто clang != clang-devel && clang36
ну или pkg delete -x clang\*



"Не работает компилятор"
Отправлено iqpi , 05-Май-15 23:55 
>> pkg delete clang
>> Checking integrity... done (0 conflicting)
>> Package(s) not found!
> наверно потомучто clang != clang-devel && clang36
> ну или pkg delete -x clang\*

Ну с этим понятно, а с gcc?
Удалил clang-devel && clang36
Установил и всё так же


"Не работает компилятор"
Отправлено d , 06-Май-15 01:42 
В /usr/bin/ шланг из базовой системы, что с ней у вас я хз.
Добавте в /etc/make.conf
CC=/usr/local/bin/clang36
CXX=/usr/local/bin/clang++36
CPP=/usr/local/bin/clang-cpp36

36 или какая версия установлена. И попробовать собрать чтото


"Не работает компилятор"
Отправлено e , 06-Май-15 02:02 
> В /usr/bin/ шланг из базовой системы, что с ней у вас я
> хз.
> Добавте в /etc/make.conf
> CC=/usr/local/bin/clang36
> CXX=/usr/local/bin/clang++36
> CPP=/usr/local/bin/clang-cpp36
> 36 или какая версия установлена. И попробовать собрать чтото

если есть исходники то можно попробовать:
Добавить тоже самое ещё в /etc/src.conf

# cd /usr/src/usr.bin/clang
# make obj depend all install && make clean



"Не работает компилятор"
Отправлено iqpi , 06-Май-15 03:49 
>[оверквотинг удален]
>> хз.
>> Добавте в /etc/make.conf
>> CC=/usr/local/bin/clang36
>> CXX=/usr/local/bin/clang++36
>> CPP=/usr/local/bin/clang-cpp36
>> 36 или какая версия установлена. И попробовать собрать чтото
> если есть исходники то можно попробовать:
> Добавить тоже самое ещё в /etc/src.conf
> # cd /usr/src/usr.bin/clang
> # make obj depend all install && make clean

Ошибка


"Не работает компилятор"
Отправлено iqpi , 06-Май-15 03:45 
> В /usr/bin/ шланг из базовой системы, что с ней у вас я
> хз.
> Добавте в /etc/make.conf
> CC=/usr/local/bin/clang36
> CXX=/usr/local/bin/clang++36
> CPP=/usr/local/bin/clang-cpp36
> 36 или какая версия установлена. И попробовать собрать чтото

Собрал один пакет, вроде работает, но хелловорлд не компилится

clang++ -o hell hello.cpp

#include <iostream>
using namespace std;

int main()
{
    cout << "HELLO" << endl;
    return 0;
}



"Не работает компилятор"
Отправлено f , 06-Май-15 07:30 
> Собрал один пакет, вроде работает, но хелловорлд не компилится
> clang++ -o hell hello.cpp

через /usr/local/bin/clang++36 или clang++(который наверно == /usr/bin/clang++ , см which clang++)?


"Не работает компилятор"
Отправлено lavr , 06-Май-15 13:05 
>> а по полному пути?
>> /usr/bin/clang -v
>> /usr/bin/gcc -v
>> /usr/bin/cc -v
> По этим путям файлы есть по 0 байт, пустые, gcc вообще нет.

в этом Ваша проблема - "файлы есть по 0 байт", почему?

gcc в 10'ке отсутствует как класс, ибо перевели на clang/llvm.

Восстановите системые tools и затем, если нужно: gcc/clang из портов.
Восстанавливается просто - развернуть base.txz, и не забыть закомментарить
ненужное в /etc/make.conf, чтобы использовать системный clang.




"Не работает компилятор"
Отправлено iqpi , 07-Май-15 00:36 
> Восстанавливается просто - развернуть base.txz, и не забыть закомментарить
> ненужное в /etc/make.conf, чтобы использовать системный clang.

Пока для меня это совсем непросто.
Как развернуть base.txz? Как это сделать? Гуглил, но так и не понял.
И на будущее, что могло разрушить "системые tools"? Как избежать этого впредь?
Спасибо.


"Не работает компилятор"
Отправлено lavr , 07-Май-15 09:54 
>> Восстанавливается просто - развернуть base.txz, и не забыть закомментарить
>> ненужное в /etc/make.conf, чтобы использовать системный clang.
> Пока для меня это совсем непросто.
> Как развернуть base.txz? Как это сделать? Гуглил, но так и не понял.

на работающей системе:

# tar --unlink -xvpJf /path/base.txz -C /

где /path/base.txz - местонахождение архива

более безопасный вариант, загрузиться с disc1 или memstick, выйти в Live:

# fsck_ffs -y /dev/диск
# mount /dev/диск /mnt
# tar --unlink -xvpJf /usr/freebsd-dist/base.txz -C /mnt
# umount /mnt
# reboot

где /dev/диск - корневая партиция, если /usr - отдельная партиция, то на
нее тоже выполнить fsck и затем смонтировать в /mnt/usr

> И на будущее, что могло разрушить "системые tools"? Как избежать этого впредь?

загадка:
- неосторожные и неверные действия системного пользователя "root"
- попытка установить clang/gcc в базовую систему - то есть в /usr/
вместо /usr/local/
- посыпался HDD


"Не работает компилятор"
Отправлено iqpi , 08-Май-15 01:44 
Сделал всё на работающей системе.
Теперь всё работает как положено.
Вы мне очень помогли.
Учусь дальше...
Спасибо!