我正在工作 [http://llvm.org/docs/WritingAnLLVMPass.html][1],试图写一个非常简单的通行证。我已经编写并编译了通行证(部分感谢 Stackoverflow 社区),但现在我无法运行它......
文档内容如下:
要对其进行测试,请按照入门指南末尾的示例将“Hello World”编译为 LLVM。我们现在可以通过这样的转换运行程序的位码文件(hello.bc)(当然,任何位码文件都可以):
$ opt -load ../../../Debug+Asserts/lib/Hello.so -hello < hello.bc > /dev/null Hello: __main Hello: puts Hello: main '-load' 选项指定'opt' 应该将您的通行证作为共享对象加载,这使得 '-hello' 成为有效的命令行参数(这是您需要注册通行证的原因之一)。因为 hello pass 并没有以任何有趣的方式修改程序,所以我们只是丢弃了 opt 的结果(将其发送到 /dev/null)。
但是,当我运行命令时,出现以下问题:
mymachine$./opt -load ../../../Debug+Asserts/lib/Hello.so -hello < hello.bc > /dev/null
Error opening '../../../Debug+Asserts/lib/Hello.so':
dlopen(../../../Debug+Asserts/lib/Hello.so, 9): image not found
-load request ignored. opt: Unknown command line argument '-hello'.
Try: './opt -help' opt: Did you mean '-help'?
有任何想法吗?我正在运行 OSX,我怀疑这是问题的一部分......