我是llvm初学者。我编译了从 svn 检查的 llvm,当使用 cmake 在 llvmroot/lib/Transform/Hello/build 中创建 makefile 时,出现错误:
unknown cmake command add_llvm_loadable_module
。我不知道为什么会发生这种情况。编译llvm的时候有什么问题吗?本例中,我通过宏中的cmake -G "Unix Makefiles"
编译了llvm。感谢您的帮助。
你只是把事情搞混了。
您应该
cd
进入 ~/llvm/build
并运行 cmake ~/llvm
或 cmake ..
。在这种情况下,您根本不需要 -DCMAKE_PREFIX_PATH
。
此命令只会为您生成构建文件。现在,如果您只想构建 Hello pass 而不是整个 LLVM,请运行
make help | grep Hello
以了解如何调用相应的目标,然后运行 make <target>
。
您应该在 CMakeLists.txt 中使用 add_llvm_library
像这样:
add_llvm_library(My_Plugin MODULE My_Plugin.cpp PLUGIN_TOOL clang)
将此添加为答案(因为没有足够的声誉来发表评论)。我这边的类似错误已修复:
add_library(HelloWorld SHARED HelloWorld.Cpp)
解决方案取自 llvm coach 存储库。对于任何 llvm 初学者来说,这是一个值得检查的代码库。