我已经在Willy上安装了llvm-3.6-dev软件包(Ubuntu15.10)。除了一个小问题--所有的头和库都在/usr/include/llvm-3.6中,例如/usr/include/llvm-3.6/llvm/IR/Support.h中,这个包工作得很好。这意味着我的程序(只引用llvm/IR/Support.h )并不是针对这些包构建的。
默认情况下,我可以告诉G++或Ubuntu查看这个文件夹吗?
目前,我只是直接将包含路径添加到命令行。但是,如果这个包决定将它们放置在/usr/local/include而不是/usr/include中,这将是非常糟糕的,所以它是非常脆弱的。
我可以把一些额外的参数传递给apt-get install,让它在没有前缀的情况下安装它们吗?
发布于 2015-11-14 20:25:04
您可以简单地将-I path添加到g++命令行选项中,并将-L path添加到链接器命令中。然而,LLVM确实提供了一个工具,用于生成使用特定版本的LLVM构建所需的选项(只要LLVM本身具有正确的选项)。
要使用llvm库函数和标头,您应该使用llvm-config --libs、llvm-config --ldflags和--llvm-config --cxxflags来获得构建代码的“正确”选项。
这应该进入makefile或任何用于构建代码的内容。
一个使用它的示例:https://github.com/Leporacanthicus/lacsap/blob/master/Makefile
顺便说一句,构建你自己的LLVM和Clang并不是非常困难--在一个6核AMD处理器的台式机上大约需要15分钟,在我的四核笔记本电脑上要多一点,在我的机器上工作要少一点)。
我就是这样构建clang +llvm的:
请查看llvm:
cd sources # Or whatever you want to keep your LLVM sources.
git clone http://llvm.org/git/llvm.git llvm 然后创建一个临时的"buildllvm“目录:
CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=1 -DLLVM_TARGETS_TO_BUILD=X86 ../llvm
make -j 8
sudo make install调整数字8,使之与您有处理器核心的相同。
这没有指定目标目录,因此将在/usr/local/{lib中安装自己,包括.}
我还构建了一个库的调试版本:
export CC=clang
export CXX=clang++
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/llvm-debug -DLLVM_TARGETS_TO_BUILD=X86 ../llvm
make -j 8
sudo make install它确实指定了安装目录。
https://stackoverflow.com/questions/33712913
复制相似问题