在 Cygwin 上加载 LLVM
我正在尝试使用 Cygwin 在 Windows 上编写 LLVM pass。当我创建项目时,会在 Release/bin 目录中创建一个 dll,而不是在 Release/lib 目录中创建 .so 文件。后者是LLVM文档中显示的内容。当我尝试使用 -load 标志加载此 dll 时,没有任何反应。
$opt -load ../../../Release/bin/Pass.dll -help
此后不会打印我尝试加载的通行证。我怎样才能做到这一点?
I am trying to write an LLVM pass on Windows using Cygwin. When I make the project, a dll gets created in the Release/bin directory instead of a .so file in the Release/lib directory. The latter is what is shown in the LLVM document. When I try to load this dll using the -load flag, nothing happens.
$opt -load ../../../Release/bin/Pass.dll -help
The pass that I am trying to load isn't printed after this. How do I get this right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Windows 上没有动态链接(这是操作系统的怪异之处),因此不幸的是,您根本无法使用这些插件。
好吧,事实上你可以以某种方式,但为此你需要将整个 LLVM 链接到大 .dll 中,将 opt 与这样的库链接,只有这样,东西才有可能工作。
There is no dynamic linking on windows (this is OS weirdness), so you cannot use the plugins at all, unfortunately.
Well, in fact you can somehow, but for this you'd need to link the whole LLVM into big .dll, link opt with such a library and only then there is a possibility that stuff might work.