Це здається дивним. Візьміть просту програму C ++
#include <cmath>
#include <iostream>
int main(void) {
std::cout << "Square root of 9 is " << sqrt(9) << std::endl;
}
який проходить добре з g++
(4.8), але не вдається компілювати з clang++
(3.3).
edd@don:/tmp$ g++ -o cmath cmath.cpp
edd@don:/tmp$ ./cmath
Square root of 9 is 3
edd@don:/tmp$ clang++ -o cmath cmath.cpp
In file included from cmath.cpp:2:
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/cmath:41:10: \
fatal error:
'bits/c++config.h' file not found
#include <bits/c++config.h>
^
1 error generated.
edd@don:/tmp$
Я підозрюю, що я пропускаю щось очевидно очевидне.
І у мене є відповідний -dev
пакет:
edd@don:/tmp$ COLUMNS=72 dpkg -l | grep "clang\|llvm"
ii clang-3.3 1:3.3-5ubunt i386 C, C++ and Objective-C compiler (
ii libclang-commo 1:3.3-5ubunt i386 clang library - Common developmen
ii libclang-commo 1:3.2repack- i386 clang library - Common developmen
ii libclang1 1:3.2repack- i386 clang library
ii libclang1-3.3 1:3.3-5ubunt i386 clang library
ii libllvm3.1:i38 3.1-2ubuntu2 i386 Low-Level Virtual Machine (LLVM),
ii libllvm3.2:i38 1:3.2repack- i386 Low-Level Virtual Machine (LLVM),
ii libllvm3.3:i38 1:3.3-5ubunt i386 Low-Level Virtual Machine (LLVM),
ii llvm-3.3 1:3.3-5ubunt i386 Low-Level Virtual Machine (LLVM)
ii llvm-3.3-dev 1:3.3-5ubunt i386 Low-Level Virtual Machine (LLVM),
ii llvm-3.3-runti 1:3.3-5ubunt i386 Low-Level Virtual Machine (LLVM),
edd@don:/tmp$
Редагувати: Я не зміг перевірити систему відстеження помилок, це насправді відомо на Launchpad .
Редагування 2: У Ubuntu 16.10, нарешті, працює:
edd@max:~/src/progs/C++(master)$ clang++ -o cmath cmath.cpp
edd@max:~/src/progs/C++(master)$ ./cmath
Square root of 9 is 3
edd@max:~/src/progs/C++(master)$
використовуючи clang++
версію 3.8.1.
Я бачу звіт про помилку НЕ ВІДКЛЮЧЕНО, 13.10 більше не підтримується, а 3.3 видаляється 15.04. Тому я проголосував за його закриття.
—
user.dz
@Sneetsher: Ви розумієте, що я подав це майже два роки тому, коли версія дистрибутива та пакунок були чинними ?
—
Дірк Еддельбуеттель
Так, я. Я просто бачу, як питання старіє. Я ні на кого не збираюся відповідати. Але якщо хочете, ви можете написати одне згадування вирішення проблеми з повідомлення про помилку
—
user.dz
-i /path-to-std-headers
. Це буде будь-який прийде пізніше тут. 7 голосів, здається, мають певну привабливість. :)
Для чого це все ще не будується (за замовчуванням) у 2016 році під 16.04. Сумно.
—
Дірк Еддельбюттель
Я спробую і дам вам знати.
—
user.dz