Вот на этом заканчивается кино с Clang в современных DEB-дистрибутивах, с точностью до имён пакетов .deb, которые нужно установить.Olej писал(а): Вот теперь всё ОК:Код: Выделить всё
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/swift $ clang++ -xc++ -stdlib=libc++ hello.cc -o hellocc olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/swift $ ./hellocc Hello Clang!
Clang
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Clang
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Clang
Но у нас ещё остаются RPM-дистрибутивы:Olej писал(а):Вот на этом заканчивается кино с Clang в современных DEB-дистрибутивах, с точностью до имён пакетов .deb, которые нужно установить.
Код: Выделить всё
[olej@dell SNMP]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 25 (Twenty Five)
Release: 25
Codename: TwentyFive
Код: Выделить всё
[olej@dell swift]$ dnf provides '*/libc++*'
Последняя проверка окончания срока действия метаданных: 12 days, 17:34:33 назад, Sat Jan 20 23:36:15 2018.
chromium-native_client-1:59.0.3071.86-4.20170607gitaac1de2.fc25.x86_64 : Google Native Client Toolchain
Источник: updates
libcxx-3.9.1-1.fc25.i686 : C++ standard library targeting C++11
Источник: updates
libcxx-3.9.1-1.fc25.x86_64 : C++ standard library targeting C++11
Источник: updates
libcxx-devel-3.9.1-1.fc25.i686 : Headers and libraries for libcxx devel
Источник: updates
libcxx-devel-3.9.1-1.fc25.x86_64 : Headers and libraries for libcxx devel
Источник: updates
libcxxabi-3.9.1-1.fc25.i686 : Low level support for a standard C++ library
Источник: updates
libcxxabi-3.9.1-1.fc25.x86_64 : Low level support for a standard C++ library
Источник: updates
libcxxabi-devel-3.9.1-1.fc25.i686 : Headers and libraries for libcxxabi devel
Источник: updates
libcxxabi-devel-3.9.1-1.fc25.x86_64 : Headers and libraries for libcxxabi devel
Источник: updates
libcxxabi-static-3.9.1-1.fc25.i686 : Static libraries for libcxxabi
Источник: updates
libcxxabi-static-3.9.1-1.fc25.x86_64 : Static libraries for libcxxabi
Источник: updates
chromium-native_client-1:52.0.2743.82-1.20160725git7d72623.fc25.x86_64 : Google Native Client Toolchain
Источник: fedora
libcxx-3.8.1-1.fc25.i686 : C++ standard library targeting C++11
Источник: fedora
libcxx-3.8.1-1.fc25.x86_64 : C++ standard library targeting C++11
Источник: fedora
libcxx-devel-3.8.1-1.fc25.i686 : Headers and libraries for libcxx devel
Источник: fedora
libcxx-devel-3.8.1-1.fc25.x86_64 : Headers and libraries for libcxx devel
Источник: fedora
Код: Выделить всё
[olej@dell swift]$ sudo dnf install libcxx
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 1:27:28 назад, Fri Feb 2 15:46:36 2018.
Зависимости разрешены.
=========================================================================================================================
Package Архитектура Версия Репозиторий Размер
=========================================================================================================================
Установка:
libcxx x86_64 3.9.1-1.fc25 updates 198 k
libcxxabi x86_64 3.9.1-1.fc25 updates 80 k
Результат операции
=========================================================================================================================
Установка 2 Пакеты
Объем загрузки: 278 k
Объем изменений: 1.0 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/2): libcxxabi-3.9.1-1.fc25.x86_64.rpm 254 kB/s | 80 kB 00:00
(2/2): libcxx-3.9.1-1.fc25.x86_64.rpm 617 kB/s | 198 kB 00:00
-------------------------------------------------------------------------------------------------------------------------
Общий размер 233 kB/s | 278 kB 00:01
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : libcxxabi-3.9.1-1.fc25.x86_64 1/2
Установка : libcxx-3.9.1-1.fc25.x86_64 2/2
Проверка : libcxx-3.9.1-1.fc25.x86_64 1/2
Проверка : libcxxabi-3.9.1-1.fc25.x86_64 2/2
Установлено:
libcxx.x86_64 3.9.1-1.fc25 libcxxabi.x86_64 3.9.1-1.fc25
Выполнено!
Код: Выделить всё
[olej@dell swift]$ clang++ -xc++ -stdlib=libstdc++ hello.cc -o hellocc
[olej@dell swift]$ clang++ -xc++ -stdlib=libc++ hello.cc -o hellocc
hello.cc:3:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
Код: Выделить всё
[olej@dell swift]$ sudo dnf install libcxx-devel
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 1:36:58 назад, Fri Feb 2 15:46:36 2018.
Зависимости разрешены.
=========================================================================================================================
Package Архитектура Версия Репозиторий Размер
=========================================================================================================================
Установка:
libcxx-devel x86_64 3.9.1-1.fc25 updates 418 k
libcxxabi-devel x86_64 3.9.1-1.fc25 updates 9.0 k
Результат операции
=========================================================================================================================
Установка 2 Пакеты
Объем загрузки: 427 k
Объем изменений: 3.8 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/2): libcxxabi-devel-3.9.1-1.fc25.x86_64.rpm 68 kB/s | 9.0 kB 00:00
(2/2): libcxx-devel-3.9.1-1.fc25.x86_64.rpm 1.4 MB/s | 418 kB 00:00
-------------------------------------------------------------------------------------------------------------------------
Общий размер 374 kB/s | 427 kB 00:01
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : libcxxabi-devel-3.9.1-1.fc25.x86_64 1/2
Установка : libcxx-devel-3.9.1-1.fc25.x86_64 2/2
Проверка : libcxx-devel-3.9.1-1.fc25.x86_64 1/2
Проверка : libcxxabi-devel-3.9.1-1.fc25.x86_64 2/2
Установлено:
libcxx-devel.x86_64 3.9.1-1.fc25 libcxxabi-devel.x86_64 3.9.1-1.fc25
Выполнено!
Код: Выделить всё
[olej@dell swift]$ clang++ -xc++ -stdlib=libc++ hello.cc -o hellocc
[olej@dell swift]$ ./hellocc
Hello Clang!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Clang
Прошло 4 года, и опять возникли трудности с использованием Clang...
При компиляции простейшей программы чисел Фибоначчи:
Код: Выделить всё
#include <iostream>
#include <cstdlib>
using namespace std;
unsigned long fib( int n ) {
return n < 2 ? 1 : fib(n - 1) + fib(n - 2);
}
int main(int argc, char **argv) {
unsigned long num = atoi(argv[1]);
cout << fib(num) << endl;
return 0;
}
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ clang++ fibo_cc.cc -o fibo_cl
fibo_cc.cc:1:10: fatal error: 'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
Тем более, что этот код C++ и эта строка компиляции - это работающие элементы с 2014 года в разборках с языком Go (Go конспект ... и там всё работало).
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Clang
Об этом много пишут (в основном краткие дебаты в англоязычном Интернет, и много...) - проблемы в несоответствии версий GCC & Clang.
Код: Выделить всё
olej@R420:~$ which clang++
/usr/bin/clang++
olej@R420:~$ clang++ --version
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Код: Выделить всё
olej@R420:~$ g++ --version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ ls /usr/include/c++/
9
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ clang++ -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 fibo_cc.cc -o fibo_cl
/usr/bin/ld: невозможно найти -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Но теперь ему не хватает расшаренных библиотек:
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ clang++ -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -L /usr/lib/gcc/x86_64-linux-gnu/9 fibo_cc.cc -o fibo_cl
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ ls -l fibo_cl
-rwxrwxr-x 1 olej olej 17160 апр 21 15:06 fibo_cl
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ ./fibo_cl 43
701408733
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Clang
Решил обновить g++...
Установлено:
Код: Выделить всё
olej@R420:~$ apt search "g\+\+-9" | grep ^i
i g++-9 - Компилятор GNU C++
i g++-9-multilib - GNU C++ compiler (multilib support)
Код: Выделить всё
olej@R420:~$ apt search "g\+\+-10"
p g++-10 - GNU C++ compiler
p g++-10:i386 - GNU C++ compiler
p g++-10-aarch64-linux-gnu - GNU C++ compiler (cross compiler for arm64 architecture)
p g++-10-aarch64-linux-gnu:i386 - GNU C++ compiler (cross compiler for arm64 architecture)
p g++-10-alpha-linux-gnu - GNU C++ compiler (cross compiler for alpha architecture)
p g++-10-alpha-linux-gnu:i386 - GNU C++ compiler (cross compiler for alpha architecture)
p g++-10-arm-linux-gnueabi - GNU C++ compiler (cross compiler for armel architecture)
p g++-10-arm-linux-gnueabi:i386 - GNU C++ compiler (cross compiler for armel architecture)
p g++-10-arm-linux-gnueabihf - GNU C++ compiler (cross compiler for armhf architecture)
p g++-10-arm-linux-gnueabihf:i386 - GNU C++ compiler (cross compiler for armhf architecture)
p g++-10-hppa-linux-gnu - GNU C++ compiler (cross compiler for hppa architecture)
p g++-10-hppa-linux-gnu:i386 - GNU C++ compiler (cross compiler for hppa architecture)
p g++-10-i686-linux-gnu - GNU C++ compiler (cross compiler for i386 architecture)
p g++-10-m68k-linux-gnu - GNU C++ compiler (cross compiler for m68k architecture)
p g++-10-m68k-linux-gnu:i386 - GNU C++ compiler (cross compiler for m68k architecture)
p g++-10-mips-linux-gnu - GNU C++ compiler (cross compiler for mips architecture)
p g++-10-mips64-linux-gnuabi64 - GNU C++ compiler (cross compiler for mips64 architecture)
p g++-10-mips64el-linux-gnuabi64 - GNU C++ compiler (cross compiler for mips64el architecture)
p g++-10-mipsel-linux-gnu - GNU C++ compiler (cross compiler for mipsel architecture)
p g++-10-mipsisa32r6-linux-gnu - GNU C++ compiler (cross compiler for mipsr6 architecture)
p g++-10-mipsisa32r6el-linux-gnu - GNU C++ compiler (cross compiler for mipsr6el architecture)
p g++-10-mipsisa64r6-linux-gnuabi64 - GNU C++ compiler (cross compiler for mips64r6 architecture)
p g++-10-mipsisa64r6el-linux-gnuabi64 - GNU C++ compiler (cross compiler for mips64r6el architecture)
p g++-10-multilib - GNU C++ compiler (multilib support)
p g++-10-multilib:i386 - GNU C++ compiler (multilib support)
p g++-10-multilib-arm-linux-gnueabi - GNU C++ compiler (multilib support) (cross compiler for armel architecture)
p g++-10-multilib-arm-linux-gnueabi:i386 - GNU C++ compiler (multilib support) (cross compiler for armel architecture)
p g++-10-multilib-arm-linux-gnueabihf - GNU C++ compiler (multilib support) (cross compiler for armhf architecture)
p g++-10-multilib-arm-linux-gnueabihf:i386 - GNU C++ compiler (multilib support) (cross compiler for armhf architecture)
p g++-10-multilib-i686-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for i386 architecture)
p g++-10-multilib-mips-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for mips architecture)
p g++-10-multilib-mips64-linux-gnuabi64 - GNU C++ compiler (multilib support) (cross compiler for mips64 architecture
p g++-10-multilib-mips64el-linux-gnuabi64 - GNU C++ compiler (multilib support) (cross compiler for mips64el architectu
p g++-10-multilib-mipsel-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for mipsel architecture
p g++-10-multilib-mipsisa32r6-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for mipsr6 architecture
p g++-10-multilib-mipsisa32r6el-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for mipsr6el architectu
p g++-10-multilib-mipsisa64r6-linux-gnuabi64 - GNU C++ compiler (multilib support) (cross compiler for mips64r6 architectu
p g++-10-multilib-mipsisa64r6el-linux-gnuabi64 - GNU C++ compiler (multilib support) (cross compiler for mips64r6el architec
p g++-10-multilib-powerpc-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for powerpc architectur
p g++-10-multilib-powerpc-linux-gnu:i386 - GNU C++ compiler (multilib support) (cross compiler for powerpc architectur
p g++-10-multilib-powerpc64-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for ppc64 architecture)
p g++-10-multilib-powerpc64-linux-gnu:i386 - GNU C++ compiler (multilib support) (cross compiler for ppc64 architecture)
p g++-10-multilib-s390x-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for s390x architecture)
p g++-10-multilib-s390x-linux-gnu:i386 - GNU C++ compiler (multilib support) (cross compiler for s390x architecture)
p g++-10-multilib-sparc64-linux-gnu - GNU C++ compiler (multilib support) (cross compiler for sparc64 architectur
p g++-10-multilib-sparc64-linux-gnu:i386 - GNU C++ compiler (multilib support) (cross compiler for sparc64 architectur
p g++-10-multilib-x86-64-linux-gnu:i386 - GNU C++ compiler (multilib support) (cross compiler for amd64 architecture)
p g++-10-multilib-x86-64-linux-gnux32 - GNU C++ compiler (multilib support) (cross compiler for x32 architecture)
p g++-10-multilib-x86-64-linux-gnux32:i386 - GNU C++ compiler (multilib support) (cross compiler for x32 architecture)
p g++-10-powerpc-linux-gnu - GNU C++ compiler (cross compiler for powerpc architecture)
p g++-10-powerpc-linux-gnu:i386 - GNU C++ compiler (cross compiler for powerpc architecture)
p g++-10-powerpc64-linux-gnu - GNU C++ compiler (cross compiler for ppc64 architecture)
p g++-10-powerpc64-linux-gnu:i386 - GNU C++ compiler (cross compiler for ppc64 architecture)
p g++-10-powerpc64le-linux-gnu - GNU C++ compiler (cross compiler for ppc64el architecture)
p g++-10-powerpc64le-linux-gnu:i386 - GNU C++ compiler (cross compiler for ppc64el architecture)
p g++-10-riscv64-linux-gnu - GNU C++ compiler (cross compiler for riscv64 architecture)
p g++-10-riscv64-linux-gnu:i386 - GNU C++ compiler (cross compiler for riscv64 architecture)
p g++-10-s390x-linux-gnu - GNU C++ compiler (cross compiler for s390x architecture)
p g++-10-s390x-linux-gnu:i386 - GNU C++ compiler (cross compiler for s390x architecture)
p g++-10-sh4-linux-gnu - GNU C++ compiler (cross compiler for sh4 architecture)
p g++-10-sh4-linux-gnu:i386 - GNU C++ compiler (cross compiler for sh4 architecture)
p g++-10-sparc64-linux-gnu - GNU C++ compiler (cross compiler for sparc64 architecture)
p g++-10-sparc64-linux-gnu:i386 - GNU C++ compiler (cross compiler for sparc64 architecture)
p g++-10-x86-64-linux-gnu:i386 - GNU C++ compiler (cross compiler for amd64 architecture)
p g++-10-x86-64-linux-gnux32 - GNU C++ compiler (cross compiler for x32 architecture)
p g++-10-x86-64-linux-gnux32:i386 - GNU C++ compiler (cross compiler for x32 architecture)
Код: Выделить всё
olej@R420:~$ sudo apt install g++-10
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
libstdc++-10-dev
Предлагаемые пакеты:
g++-10-multilib gcc-10-doc libstdc++-10-doc
Следующие НОВЫЕ пакеты будут установлены:
g++-10 libstdc++-10-dev
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 11,6 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 47,1 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive focal-updates/universe amd64 libstdc++-10-dev amd64 10.3.0-1ubuntu1~20.04 [1.759 kB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive focal-updates/universe amd64 g++-10 amd64 10.3.0-1ubuntu1~20.04 [9.803 kB]
Получено 11,6 MB за 4с (2.753 kB/s)
Выбор ранее не выбранного пакета libstdc++-10-dev:amd64.
(Чтение базы данных … на данный момент установлено 419269 файлов и каталогов.)
Подготовка к распаковке …/libstdc++-10-dev_10.3.0-1ubuntu1~20.04_amd64.deb …
Распаковывается libstdc++-10-dev:amd64 (10.3.0-1ubuntu1~20.04) …
Выбор ранее не выбранного пакета g++-10.
Подготовка к распаковке …/g++-10_10.3.0-1ubuntu1~20.04_amd64.deb …
Распаковывается g++-10 (10.3.0-1ubuntu1~20.04) …
Настраивается пакет libstdc++-10-dev:amd64 (10.3.0-1ubuntu1~20.04) …
Настраивается пакет g++-10 (10.3.0-1ubuntu1~20.04) …
Обрабатываются триггеры для man-db (2.9.1-1) …
Код: Выделить всё
olej@R420:~$ ls /usr/include/c++/
10 9
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ clang++ fibo_cc.cc -o fibo_cl
Код: Выделить всё
olej@R420:~/2022/Go/compare/fibo$ ./fibo_cl 15
987
Код: Выделить всё
olej@R420:~$ g++ --version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
С Clang разрешилось ... но возник вопрос как переключать установленные версии gcc/g++ ?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Clang
Понадобился вновь Clang в связи ... с книгой по Go и сравнением характеристик Clang и GoLang ... не важно...Olej писал(а): ↑02 апр 2013, 11:02Clang может линковаться со стандартной библиотекой из GCC (опция -stdlib=libstdc++) и с новой библиотекой C++ (опция -stdlib=libc++), которая делается в составе проекта Clang, и утверждается, что она лучше (чем GCC) уже на сейчас, а дальше будет всё лучше и лучше...
Время прошло... :
Код: Выделить всё
olej@R420:/usr/include$ clang --version
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Код: Выделить всё
olej@R420:/usr/include/c++/11$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 21.2
Release: 21.2
Codename: victoria
... т.е. Ubuntu-совместимая...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Clang
На том же коде проверяюсь со сборкой:
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ cat fibo_cc.cc
#include <iostream>
#include <cstdlib>
using namespace std;
unsigned long fib( int n ) {
return n < 2 ? 1 : fib(n - 1) + fib(n - 2);
}
int main(int argc, char **argv) {
unsigned long num = atoi(argv[1]);
cout << fib(num) << endl;
return 0;
}
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ clang++ -O3 fibo_cc.cc -o fibo_cl
fibo_cc.cc:1:10: fatal error: 'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Clang
Поковырявшись изрядно ... всё забылось ... - нахожу решение для сборки с библиотеками GCC (родными Linux), libstdc++ :
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples.work/compare/fibo$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Код: Выделить всё
olej@R420:~$ la -l /usr/include/c++
итого 36
drwxr-xr-x 12 root root 12288 июл 31 18:34 10
drwxr-xr-x 12 root root 12288 июл 31 18:34 11
drwxr-xr-x 13 root root 12288 янв 4 2023 9
И, в конечном итоге, сборка, после некоторых мытарств, с библиотеками GCC пошла:
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ clang++ -O3 -I/usr/include/c++/11/ -I/usr/include/x86_64-linux-gnu/c++/11 -L /usr/lib/gcc/x86_64-linux-gnu/11 fibo_cc.cc -o fibo_cl
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ ls -l fibo_cl
-rwxrwxr-x 1 olej olej 16776 янв 13 00:27 fibo_cl
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ time ./fibo_cl 45
1836311903
real 0m5,065s
user 0m5,063s
sys 0m0,000s
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Clang
Теперь хотелось бы собрать точно тот же код, но с C++ библиотекой Clang (libc++).
Но тут поджидает следующий облом:
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ clang++ -O3 -I/usr/include/c++/11/ -I/usr/include/x86_64-linux-gnu/c++/11 -stdlib=libc++ fibo_cc.cc -o fibo_cl
/usr/bin/ld: невозможно найти -lc++: Нет такого файла или каталога
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Код: Выделить всё
olej@R420:~/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo$ clang++ -v -O3 -I/usr/include/c++/11/ -I/usr/include/x86_64-linux-gnu/c++/11 -stdlib=libc++ fibo_cc.cc -o fibo_cl
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/usr/lib/llvm-14/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name fibo_cc.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/home/olej/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo -resource-dir /usr/lib/llvm-14/lib/clang/14.0.0 -I /usr/include/c++/11/ -I /usr/include/x86_64-linux-gnu/c++/11 -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -fdeprecated-macro -fdebug-compilation-dir=/home/olej/2024/own.BOOKs/BHV.Go.2/examples/compare/fibo -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/fibo_cc-b533cb.o -x c++ fibo_cc.cc
clang -cc1 version 14.0.0 based upon LLVM 14.0.0 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/11
/usr/include/x86_64-linux-gnu/c++/11
/usr/lib/llvm-14/lib/clang/14.0.0/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
"/usr/bin/ld" -pie --hash-style=both --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o fibo_cl /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/12 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/llvm-14/bin/../lib -L/lib -L/usr/lib /tmp/fibo_cc-b533cb.o -lc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib/gcc/x86_64-linux-gnu/12/crtendS.o /lib/x86_64-linux-gnu/crtn.o
/usr/bin/ld: невозможно найти -lc++: Нет такого файла или каталога
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей