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
pkg info -a находитgcc-4.8.4
clang-devel-3.7.r234164
clang36-3.6.0
gcc -v
gcc: not foundclang -v
без ответа
а по полному пути?
/usr/bin/clang -v
/usr/bin/gcc -v
/usr/bin/cc -v
> а по полному пути?
> /usr/bin/clang -v
> /usr/bin/gcc -v
> /usr/bin/cc -vПо этим путям файлы есть по 0 байт, пустые, gcc вообще нет.
Что сделать, чтоб всё работало?
попробовать снести через pkg delete gcc/clang и переустановить их из пакетов.
> попробовать снести через 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.
> pkg delete clang
> Checking integrity... done (0 conflicting)
> Package(s) not found!наверно потомучто clang != clang-devel && clang36
ну или pkg delete -x clang\*
>> pkg delete clang
>> Checking integrity... done (0 conflicting)
>> Package(s) not found!
> наверно потомучто clang != clang-devel && clang36
> ну или pkg delete -x clang\*Ну с этим понятно, а с gcc?
Удалил clang-devel && clang36
Установил и всё так же
В /usr/bin/ шланг из базовой системы, что с ней у вас я хз.
Добавте в /etc/make.conf
CC=/usr/local/bin/clang36
CXX=/usr/local/bin/clang++36
CPP=/usr/local/bin/clang-cpp3636 или какая версия установлена. И попробовать собрать чтото
> В /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
>[оверквотинг удален]
>> хз.
>> Добавте в /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Ошибка
> В /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;
}
> Собрал один пакет, вроде работает, но хелловорлд не компилится
> clang++ -o hell hello.cppчерез /usr/local/bin/clang++36 или clang++(который наверно == /usr/bin/clang++ , см which clang++)?
>> а по полному пути?
>> /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.
> Восстанавливается просто - развернуть base.txz, и не забыть закомментарить
> ненужное в /etc/make.conf, чтобы использовать системный clang.Пока для меня это совсем непросто.
Как развернуть base.txz? Как это сделать? Гуглил, но так и не понял.
И на будущее, что могло разрушить "системые tools"? Как избежать этого впредь?
Спасибо.
>> Восстанавливается просто - развернуть 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
Сделал всё на работающей системе.
Теперь всё работает как положено.
Вы мне очень помогли.
Учусь дальше...
Спасибо!