我正在尝试在我的项目目录下开发一个 llvm 通行证。为此,我遵循http://llvm.org/docs/CMake.html#developing-llvm-pass-out-of-source中的信息。我在这个链接中适当地创建了我的 CMakeFiles,我的最终项目目录就像;
|-- src
| |-- CMakeLists.txt
| |-- bigForPass
| | |-- CMakeLists.txt
| | |-- bigForPass.cpp
| | |-- merged.bc
| |-- build
我还将我的源文件与 llvm 根目录链接起来,没有任何问题。最后,我在“build”文件夹下进行构建,并且我的共享库成功创建,没有问题(在 build/bin 文件夹下),名称为 LLVMHello1.dylib。但是,当我尝试使用命令运行 merge.bc 文件(包含我的 llvm 代码)时
opt -load ../build/bin/LLVMHello1.dylib -bishe_insert <merged.bc> final.bc
我不断收到错误消息;
Error opening '../build/bin/LLVMHello1.dylib': dlopen(../build/bin/LLVMHello1.dylib, 9): Symbol not found: __ZTIN4llvm10ModulePassE
Referenced from: ../build/bin/LLVMHello1.dylib
Expected in: flat namespace
in ../build/bin/LLVMHello1.dylib
-load request ignored.
对此有任何想法和建议吗?
提前非常感谢。