Ok, donc je Halide compilé sur Ubuntu 13.04 avec succès en installant llvm
, clang
et build-essential
. Ma seule supposition quant à votre problème est que le LLVM ou le clang du PPA que vous avez installé n'a peut-être pas fonctionné correctement. Il semble qu'il soit réellement possible d'obtenir LLVM 3.2 d'Ubuntu pour 12.04, via ce que l'on appelle l'archive "proposée". Vous pouvez essayer de purger le LLVM que vous avez et de l'installer à partir de "proposé". Je vais vous expliquer comment faire cela ci-dessous. Puisque vous avez mentionné que vous êtes nouveau sur Ubuntu (dans la version originale de la question), je vais d'abord expliquer ce que fait chaque commande que vous avez déjà utilisée, du mieux que je peux.
Donc, sudo apt-get install llvm-3.2
tente d'installer le package nommé à llvm-3.2
partir des référentiels actuels activés sur votre système. Dans votre cas, il est introuvable, la commande a donc échoué. sudo apt-get install llvm
installé le llvm
package, qui est probablement un package spécial qui utilise uniquement le LLVM le plus récent disponible dans vos référentiels standard. Dans votre cas, c'était 2,9. La même idée s'applique à sudo apt-get install clang
. sudo add-apt-repository ppa:kxstudio-team/builds
ajoute ce que l'on appelle une archive de package personnelle ou PPA à votre système. Cela vous permet d'obtenir plus de logiciels à partir d'un autre référentiel ou d'une source logicielle. Voir https://help.launchpad.net/Packaging/PPA pour plus d'informations. Finalement,sudo apt-get update
indique à Ubuntu d'obtenir des informations sur les packages disponibles dans les référentiels actuellement disponibles. Vous pouvez consulter http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html pour plus d'informations sur la gestion des paquets dans Debian (dont la plupart devraient également s'appliquer à Ubuntu, depuis Ubuntu est basé sur Debian).
Ainsi, les étapes pour supprimer les packages que vous avez et installer les versions disponibles de precise-propose:
- Utilisez
sudo apt-get purge llvm-3.2 clang-3.2
pour supprimer complètement LLVM et clang de votre système.
- (Facultatif) Utilisez
sudo add-apt-repository --remove ppa:kxstudio-team/builds
pour supprimer le PPA de votre système.
- Suivez les instructions sur https://wiki.ubuntu.com/Testing/EnableProposed pour activer l'archive proposée (en haut de la page), et suivez également les instructions pour "Mise à niveau sélective de -proposée". La première partie activera la version Ubuntu réelle du
llvm-3.2
package, et la seconde empêchera le système d'essayer de tout mettre à niveau vers les versions proposées.
- Utilisez
sudo apt-get update
pour extraire les informations sur les packages et les versions disponibles.
- Utilisez
sudo apt-get install llvm-3.2/precise-proposed
pour installer LLVM 3.2, et utilisez sudo apt-get install clang/precise-proposed
pour installer Clang 3.0 (je pense que c'est la version que vous devriez obtenir).
- NOUVELLE ÉTAPE: Faites
sudo ln -s /usr/bin/llvm-config-3.2 /usr/local/bin/llvm-config
pour que le système traite llvm-config-3.2
(qui est llvm-config
fourni avec llvm-3.2
) comme llvm-config
. Plus complètement, cela crée un lien symbolique (ou lien symbolique) vers llvm-config-3.2 dans un autre endroit où Ubuntu recherchera des programmes (plus d'informations: ln , FHS , PATH ). Ainsi, lorsque vous exécutez "llvm-config", Ubuntu trouvera le lien symbolique et exécutera le programme vers lequel il pointe ( llvm-config-3.2
).
- Voyez si tout se compile correctement maintenant.
J'espère que cela fonctionne. Je n'ai testé rien de tout cela, donc utilisez-le à vos risques et périls, etc. Je suis sûr, cependant, que cela ne devrait rien faire de terrible.
EDIT: Notez que llvm
et llvm-3.2
sont indépendants. llvm
dépend de llvm-2.9
( voir ici ), tandis que llvm-3.2
est séparé ( voir dépendances ici )
De plus, je ne sais pas si vous connaissez la complétion des onglets ; cela peut être utile si vous recherchez une commande mais que vous ne connaissez pas très bien le nom (par exemple, dans ce cas, cela aurait probablement montré qu'elle a llvm-config
été appelée llvm-config-3.2
).