Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 安装Clang/LLVM/Ubuntu_Linux_Gcc_Ubuntu_Clang - Fatal编程技术网

Linux 安装Clang/LLVM/Ubuntu

Linux 安装Clang/LLVM/Ubuntu,linux,gcc,ubuntu,clang,Linux,Gcc,Ubuntu,Clang,我被要求在注册的编译器类中使用LLVM和Clang。这不是关于课程内容的问题,而是如何安装所需的软件 我正在运行gcc版本4.6.3,并下载、构建、测试和更新了我认为是LLVM套件版本3.4(最新的svn版本)。我做了一个简单的“hello world”应用程序,如LLVM入门页面上所述,但在线 lli helloworld.bc 我得到错误“lli:helloworld.bc:无效模块\u代码\u GLOBALVAR记录” 以下是我在终端中运行的说明,其中大部分直接取自LLVM网站: cd

我被要求在注册的编译器类中使用LLVM和Clang。这不是关于课程内容的问题,而是如何安装所需的软件

我正在运行gcc版本4.6.3,并下载、构建、测试和更新了我认为是LLVM套件版本3.4(最新的svn版本)。我做了一个简单的“hello world”应用程序,如LLVM入门页面上所述,但在线

lli helloworld.bc
我得到错误“lli:helloworld.bc:无效模块\u代码\u GLOBALVAR记录”

以下是我在终端中运行的说明,其中大部分直接取自LLVM网站:

cd myFolder
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd myFolder
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd myFolder
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd myFolder
mkdir build
cd build
../llvm/configure --enable-optimized CC=/usr/bin/clang CXX=/usr/bin/clang++
make
make check-all
make update
然后

最后一行,lli hello.bc,就是上面的错误

以下是我的问题:

  • 我的机器上安装了什么?如何解决此错误

  • 我的教授说我们需要clang和LLVM 3.3。如何获取LLVM 3.3

  • 键入时:

    clang -03 -emit-llvm hello.c -c -o hello.bc
    
    您使用了系统的
    clang
    可执行文件,它位于
    /usr/bin/clang
    ,而不是您刚才构建的clang。两者有不同的版本<代码>lli,然而,它是您刚刚构建的
    lli
    ——Ubuntu没有附带它。这意味着您使用较旧的LLVM版本生成了一个.bc文件,然后尝试使用较新的LLVM版本运行它,因此出现了问题

    要验证这一点,您可以通过在控制台中键入
    which clang
    来检查您正在使用的
    clang


    解决此问题的最简单方法是键入
    /clang
    (或不只是文件名的任何其他路径)而不是
    clang
    ,这会迫使shell选择当前目录中的文件。

    您应该提供有关如何构建LLVM的更多详细信息(这通常在大多数Linux发行版中打包;您可以简单地
    aptitude安装clang llvm
    )。您可以在llvm邮件列表中询问这一点。您是否可以编辑该问题,以详细说明您是如何生成“helloworld.bc”文件的?此外,您可能会感兴趣。
    clang -03 -emit-llvm hello.c -c -o hello.bc