ubuntu 12.04如何安装clang预制二进制文件

前端之家收集整理的这篇文章主要介绍了ubuntu 12.04如何安装clang预制二进制文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对linux很新,不知道我在哪里需要把Clang预制的二进制文件 http://llvm.org/releases/download.html#3.3.我下载它,用鼠标解压缩,并将路径添加到/ bin到我的$PATH,路径到/ lib到$LD_LIBRARY_PATH,并添加* .conf路径到我的/ lib到/etc/ld.so.conf.d .我甚至重新启动我的笔记本.
…但仍然无法使用Code :: Blocks GCC构建我的简单程序(错误:/home/aadgrand/tmp/LLVM-3.3/final/llvm.src/lib/Support/Signals.cpp – 未定义的引用“dladdr” ).
测试程序文本:
#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;
}

还需要做什么?也许我需要使用* .sig文件?嗯?

How to install CLang using precompiled binaries?相同的问题.
对不起,重复,但它真的非常有趣和重要.

===== UPDATED ======

我刚刚insalled llvm-3.1,同样的错误像llvm-3.4(从预构建的二进制文件):

-------------- 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,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 ===|
你的问题的标题误导了我自己和阿特罗波.看起来好像
你想安装clang C编译器并构建一个llvm
C程序与它在Code :: Blocks中.

你实际想做的是安装clang llvm(实际上是这样
不同的东西),并在Code :: blocks中与GCC建立一个llvm程序.
你确实说“Code :: Blocks GCC”,但我认为这只是意思
“我已经将Code :: Blocks设置为GCC,现在我想使用clang”. C :: B构建日志
然而,您已经添加了,显示您与GCC建立.

鉴于您正在与GCC建立您的llvm程序,因此不清楚为什么
你想安装clang编译器.也许你想使用cl ang,但你
不知道Code :: Blocks可以支持clang编译器,还是不知道该怎么做
配置C :: B使用clang.但是让我们一起去做一件事.你可以建立
这个llvm程序与gcc,如果你只是让事情设置正确.和 –
一个单独的问题 – 你可以正确安装clang.和
– 另一个单独的问题 – 如果需要,可以使用clang配置C :: B.

Atropo粘贴命令来安装最新的
clang及其调试器lldb.但是clang不需要所有的llvm库和
安装只是clang和lldb不会给你所需要的所有图书馆
构建您的llvm程序.

你在你的一个评论中表示,你已经能够构建你的程序了
与cl ang在一个终端.这表明你在这一点上有工作
手动安装clang和llvm.但我不知道你还有没有
反正我和阿托罗就是手动地同意了
安装这样复杂的软件 – 自定义你的PATH和LD_LIBRARY_PATH
等等 – 比包装的管理安装更不明智
回收,让包裹管理者拿到正确的东西.

首先,我们在C :: B中使用gcc构建你的llvm程序,然后从一些开始
可能或可能不是必要的预防措施:

>撤消所有自定义的操作,并手动删除或隐藏
安装了clang / llvm二进制文件.
>获取所有软件包的最新信息.在控制台中,运行:

sudo apt-get更新
>确保您拥有构建C/C++软件的所有基本软件包.在里面
控制台,运行:

sudo apt-get install build-essential

这完成了预防措施.下一个:

>从标准的ubuntu 12.04仓库安装llvm.你会变老了
一个,v2.9,但现在很好:

sudo apt-get install llvm

现在你已经拥有所需的所有软件了.保持该控制台的方便和启动
C :: B在你简单的llvm项目中.

>因为你现在有一个标准的系统安装的llvm,改变第二个
#include您的源代码指令如下:

#include< llvm / Module.h>

#include< llvm / LLVMContext.h>
>获取llvm来告诉你需要传递给GCC的编译器选项.在里面
控制台运行:

llvm-config –cxxflags
>将该命令的输出从控制台复制到剪贴板.在C :: B中,
打开项目的Build选项并浏览Compiler设置 – >其他选项
为GCC.在其他选项编辑框中,粘贴编译器选项
剪贴板和OK.
>获取llvm来告诉你需要链接哪些库.在里面
控制台运行:

llvm-config –libs
>将该命令的输出从控制台复制到剪贴板(此时
有很多).在C :: B中,浏览构建选项 – >链接器设置 – >其他链接器选项.
在编辑框中,从剪贴板中粘贴库选项,然后单击确定.
>获取llvm来告诉你需要传递给链接器的(其他)选项.在里面
控制台运行:

llvm-config –ldflags
>将该命令的输出从控制台复制到剪贴板.在C :: B中,
再次导航,构建选项 – >链接器设置 – >其他链接器选项
在编辑框中,之后 – 重复,之后 – 您之前粘贴的库选项,
从剪贴板粘贴附加的链接器选项并确定它.
>现在重建你的项目,这一次它将只编译和链接
只对未使用的变量c(至少对我来说)的一个警告.

包括构建您的程序.如果你现在运行它,它会输出“从不打印”,
我猜你不想要它但这是一个你的问题:)它构建并运行.

如果您还想安装所有最新的llvm和clang软件包,请继续阅读.

>在您的软件源中为Ubuntu 12.04安装llvm工具链存储库

sudo add-apt-repository’deb http://llvm.org/apt/precise/ llvm-toolchain-precise main’
>安装该存储库的gpg密钥,以从其中验证软件包下载.注意
这个命令行的最后连字符:

wget -O – http://llvm.org/apt/llvm-snapshot.gpg.key|sdoo apt-key add –
再次刷新你的包数据库

sudo apt-get更新
>安装整个llvm clang工具链:

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
证明你有cl ang 3.4:

ang ang

该命令应输出

Ubuntu clang version 3.4-1~exp1 (trunk) (based on LLVM 3.4)
Target: x86_64-pc-linux-gnu
Thread model: posix

最后,您可能需要配置C :: B来使用clang而不是GCC.我会
只是让你开始

>在C :: B中,导航到GCC的编译器设置,然后单击复制按钮.在添加新的编译器编辑框中,输入clang-3.4,然后单击确定.然后按照提示C:B提供更新“工具链可执行文件页面.

猜你在找的Ubuntu相关文章