我是llvm的新手,正在尝试为llvm编写通行证您好,我已经通过以下链接在linux机器中下载并构建了llvm http://llvm.org/docs/GettingStarted.html
我试图通过以下链接写一篇文章http://llvm.org/docs/WritingAnLLVMPass.html
我已经复制了链接中指定的Makefile到llvm编译器中的Hello文件夹,并试图执行制作。但是我遇到了以下错误。Makefile: 14:…/…/…/Makefile.common:没有这样的文件或目录制作:***没有规则使目标'…/…/…/Makefile.common'。停止。
我知道它找不到Makefile.common,但是llvm中的大部分内容都是只读的,并且是从svn库中下载的。
有人能帮助我解决这个问题吗?我错过了什么吗,我遵循了正确的方法吗?
有没有什么比较好的教程大家可以参考一下?短暂性缺血性发作
LLVM现在使用CMake构建,所以旧的Makefile无法工作。您链接的同一教程指出了如何编写CMakeLists.txt。
设置如下目录结构:
HelloPassProject
├── build
├── CMakeLists.txt
└── HelloPass
├── CMakeLists.txt
└── HelloPass.cpp
所以有一个顶级的<code>HelloPassProject</code>,它包含根<code>CMakeList。txt,一个build
目录,我们将在其中构建pass,以及一个包含实际pass源和passCMakeLists.txt
HelloPass目录。
HelloPassProject/CMakeLists.txt
的内容:
find_package(LLVM REQUIRED CONFIG)
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
include(AddLLVM)
add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})
add_subdirectory(HelloPass)
< code > hello pass project/hello pass/cmakelists . txt 的内容(在此列出您的来源):
add_llvm_loadable_module(LLVMHelloPass HelloPass.cpp)
要针对已安装的LLVM构建:
cd HelloPassProject/build
cmake ..
make
要针对您从源代码构建的 LLVM 进行构建(假设它是在 ~/llvm-project/build
中构建的):
cd HelloPassProject/build
cmake -DCMAKE_PREFIX_PATH=~/llvm-project/build ..
make
您只需要树外构建中的HelloPass
子目录。将其复制到中
llvm.3.9.0-src下有一个Makefile.common,也就是你的llvm源根目录。所以这不是你的问题。
请注意,在 Makefile.common 中有一些 make 变量需要设置。