Comment installer les binaires pré-compilés de clang ubuntu 12.04
Je suis très nouveau sous linux et je ne sais pas où je dois mettre Clang pré-construit binaires http://llvm.org/releases/download.html#3.3 . - Je le télécharger, le décompresser avec la souris, et ajouter le chemin vers /bin à mon $CHEMIN, et le chemin vers /lib $LD_LIBRARY_PATH, et ajouter *.conf avec mon chemin vers /lib dans /etc/ld..conf.d . J'ai même redémarrer mon ordinateur portable.
...mais encore cant construire mon programme simple avec Code::Blocks GCC (erreur: /home/aadgrand/tmp/LLVM-3.3/final/llvm.src/lib/Support/Signals.cpp - undefined reference to `dladdr').
Texte de l'essai programm:
#include <iostream>
#include "llvm/IR/Module.h"
#include "llvm/IR/LLVMContext.h"
using namespace std;
int main()
{
llvm::LLVMContext &c = llvm::getGlobalContext(); //error line
cout << "Never printed" << endl;
return 0;
}
Quoi d'autre dois-je faire? Peut-être que j'ai besoin d'utiliser *.sig-fichier? Hm?
Même question que Comment faire pour installer CLang à l'aide des binaires précompilés? .
Désolé pour la répétition, mais c'est vraiment très intéressant et important.
===== Mise à JOUR ======
Je viens de insalled llvm-3.1, même message d'erreur comme avec llvm-3.4 (de la pré-construit binaires):
-------------- Build: Debug in test2 ---------------
Compiling: main.cpp
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
COLLECT_GCC_OPTIONS='-std=c++98' '-pg' '-g' '-v' '-Wall' '-fexceptions' '-I' '/usr/lib/llvm-3.1/include' '-c' '-o' 'obj/Debug/main.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/cc1plus -quiet -v -I /usr/lib/llvm-3.1/include -imultilib . -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /home/kpdev/projects/test2/test2/main.cpp -quiet -dumpbase main.cpp -mtune=generic -march=x86-64 -auxbase-strip obj/Debug/main.o -g -Wall -std=c++98 -version -p -fexceptions -fstack-protector -o /tmp/ccbKoBDJ.s
GNU C++ (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/llvm-3.1/include
/usr/include/c++/4.6
/usr/include/c++/4.6/x86_64-linux-gnu/.
/usr/include/c++/4.6/backward
/usr/lib/gcc/x86_64-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++ (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 65b5171ac1bd7b3f07dbea6bdb24be3d
/home/kpdev/projects/test2/test2/main.cpp: In function ‘int main()’:
/home/kpdev/projects/test2/test2/main.cpp:11:24: warning: unused variable ‘c’ [-Wunused-variable]
COLLECT_GCC_OPTIONS='-std=c++98' '-pg' '-g' '-v' '-Wall' '-fexceptions' '-I' '/usr/lib/llvm-3.1/include' '-c' '-o' 'obj/Debug/main.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
as --64 -o obj/Debug/main.o /tmp/ccbKoBDJ.s
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-std=c++98' '-pg' '-g' '-v' '-Wall' '-fexceptions' '-I' '/usr/lib/llvm-3.1/include' '-c' '-o' 'obj/Debug/main.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
Linking console executable: bin/Debug/test2
/usr/lib/llvm-3.1/lib/libLLVMSupport.a(Signals.o): In function `PrintStackTrace(void*)':
(.text+0x6c): undefined reference to `dladdr'
/usr/lib/llvm-3.1/lib/libLLVMSupport.a(Signals.o): In function `PrintStackTrace(void*)':
(.text+0x187): undefined reference to `dladdr'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 1 warnings
||=== Build finished: 2 errors, 1 warnings ===|
source d'informationauteur kpdev
Vous devez vous connecter pour publier un commentaire.
Le titre de votre question qui a trompé la fois pour moi et Atropo. Il a regardé comme si
vous souhaitez installer la clang compilateur C++ et de construire une llvm
Programme en C++ avec Code::Blocks.
Ce que vous êtes en train d'essayer de faire est d'installer clang+llvm (ils sont en fait
des choses différentes) et de construire une llvm programme avec GCC dans Code::blocks.
Vous avez dit "Code::Blocks GCC", mais je suppose que signifiait
"J'ai eu de Code::Blocks mis en place avec GCC et maintenant je veux utiliser clang". La C::B journal de l'
que vous avez ajouté, cependant, montre que vous bâtiment avec GCC.
Étant donné que vous êtes la construction de votre llvm programme avec GCC, il n'est pas clair pourquoi
vous souhaitez installer le compilateur clang. Peut-être que vous souhaitez utiliser clang mais vous
ne sais pas que Code::Blocks peut soutenir le compilateur clang, ou ne savent pas comment
configurer C::B pour utiliser clang. Mais nous allons prendre une chose à la fois. Vous peut construire
cette llvm programme avec gcc, si vous venez de faire les choses correctement configuré. Et -
une question distincte -, vous pouvez installer clang correctement. Et
- un autre problème - vous pouvez configurer C::B pour construire avec clang si vous le souhaitez.
Atropo collé commandes pour l'installation de la dernière
clang et son débogueur lldb. Mais clang n'a pas besoin de toutes les bibliothèques et llvm
l'installation juste clang et lldb ne vous donne pas toutes les bibliothèques dont vous avez besoin pour
construire votre llvm programme.
Vous l'avez dit dans un de vos commentaires que vous aviez été en mesure de construire votre programme
avec clang++ dans un terminal. Qui suggère que vous n'avait, à ce point, un travail
l'installation manuelle de clang et llvm. Mais je ne sais pas si vous avez encore un après
l'intervenant vous embêter et de toute façon je suis d'accord avec Atropo que manuellement
l'installation de tels logiciels complexes - personnalisation de votre
PATH
etLD_LIBRARY_PATH
etc. etc. - est beaucoup moins sensible que d'une gestion de l'installation à partir d'un package
repoository, laissant le gestionnaire de paquets bien faire les choses.
D'abord, nous allons construire votre llvm programme avec gcc dans C::B, et pour cela, commencer avec quelques
des mesures de précaution qui peut ou peut ne pas être nécessaire:
Annuler tous que la personnalisation que vous avez fait et de supprimer ou de masquer votre manuellement
installé clang/llvm binaires.
Obtenir tous vos paquets jusqu'à ce jour. Dans une console, exécutez:
sudo apt-get update
Vous assurer d'avoir tous les forfaits de base pour la construction de C/C++ de logiciels. Dans le
console, exécutez:
sudo apt-get install build-essential
Qui termine les précautions. Prochaine:
Installer llvm de la norme ubuntu 12.04 référentiel. Vous obtiendrez un vieux
l'un, v2.9 mais c'est très bien pour l'instant:
sudo apt-get install llvm
Maintenant, vous avez tous les logiciels dont vous avez besoin. Garder cette console à portée de main et de lancement
C::B en simple llvm projet.
Que vous avez maintenant un système standard-installation de llvm, changer les deux
#include
directives de votre code source pour les éléments suivants:#include <llvm/Module.h>
#include <llvm/LLVMContext.h>
Obtenir llvm pour vous dire ce que les options du compilateur vous avez besoin pour passer à GCC. Dans le
console:
llvm-config --cxxflags
Copie de la sortie de cette commande à partir de la console dans le presse-papiers. Dans C::B,
ouvrez votre projet options de génération et naviguer les paramètres du Compilateur -> Autres options
pour GCC. Dans le Autres options edition, coller dans les options de compilation de
le presse-papiers et OK.
Obtenir llvm pour vous dire que les bibliothèques vous avez besoin de lien. Dans le
console:
llvm-config --libs
Copie de la sortie de cette commande à partir de la console dans le presse-papiers (cette fois-ci
il y a beaucoup d'elle). Dans C::B, naviguer options de génération -> Linker settings -> Autres options du linker.
Dans l'édition de la boîte, collez-le dans la bibliothèque options à partir du presse-papiers et OK.
Obtenir llvm pour vous dire ce que les (autres) options dont vous avez besoin pour passer à l'éditeur de liens. Dans le
console:
llvm-config --ldflags
Copie de la sortie de cette commande à partir de la console dans le presse-papiers. Dans C::B,
naviguer, une fois de plus, options de génération -> Linker settings -> Autres options du linker
Dans l'édition de la boîte, après - répétez, après - la bibliothèque options que vous avez déjà collé là,
coller dans l'autre linker options à partir du presse-papiers et OK.
Reconstruire votre projet et cette fois, il va compiler et lier avec seulement
seulement un avertissement pour le solde non utilisé de la variable
c
(au moins pour moi).Qui couvre la construction de votre programme. Maintenant, si vous l'exécutez, il sera sortie "de ne Jamais imprimés",
ce qui, j'imagine que vous ne voulez pas que ça; mais c'est un problème pour vous 🙂 Il construit et exécute.
Si vous aussi vous voulez installer toutes les dernières llvm et clang paquets, lire sur.
Installer la chaîne de compilation llvm référentiel, pour Ubuntu 12.04, dans vos sources de logiciels
sudo add-apt-repository 'deb http://llvm.org/apt/precise/llvm-toolchain-precise main'
Installer la clé gpg du dépôt d'authentifier paquet de téléchargements. Note
le dernier trait d'union dans cette ligne de commande:
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -
Actualiser votre base de données de paquets de nouveau:
sudo apt-get update
Installer l'ensemble de llvm+bruit de la chaîne:
sudo apt-get install clang-3.4 clang-3.4-doc libclang-common-3.4-dev libclang-3.4-dev libclang1-3.4 libclang1-3.4-dbg libllvm-3.4-ocaml-dev libllvm3.4 libllvm3.4-dbg lldb-3.4 llvm-3.4 llvm-3.4-dev llvm-3.4-doc llvm-3.4-examples llvm-3.4-runtime cpp11-migrate-3.4 clang-format-3.4
Prouver que vous avez clang 3.4:
clang -v
Cette commande doit de sortie:
Enfin, vous pouvez configurer C::B pour utiliser clang au lieu de GCC. Je vais
juste l'obtenir vous avez commencé.
Dans le Ajouter un nouveau compilateur edit-zone, entrez
clang-3.4
et cliquez sur OK. Alorssuivez l'invite C::B, vous donne la mise à jour de la "Toolchain executables" page.
Au lieu de l'installer manuellement, vous pouvez utiliser le
LLVM
repo, l'ajouter à votreapt
sources et de les installer viaapt-get
ou Ubuntu gestionnaire de paquet. Voir LLVM apt repo sur la façon de le faire.De suivre les étapes comme écrit dans le Installer paragraphe, dans un terminal: