Clang++:在链接时定义数据类型
是否有可能将 C++ 程序编译为 LLVM 汇编器并在链接时定义某些变量的类型?
考虑这个小程序
template<typename T> T inc(T v) {return v++;}
,当你编译它时,它不会被编译成位码,因为它是一个模板化函数。 但我无法在源代码文件中#include
它,因为我想创建几个位码文件并在程序运行时链接一些特定的位码文件。
有什么解决方法吗?
is there any possibility to compile C++ programs into LLVM assembler and define the type of some variables at link time?
Consider this small programm
template<typename T> T inc(T v) {return v++;}
When you compile it, it won't be compiled into bitcode, because it is a templated function.
But I cannot #include
it in my source code files, because I want to create several bitcode files and link some specific ones at runtime of my program.
Is there any workaround?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本上,答案是否定的,你不能。但是您可以链接到 clang 库并在运行时直接从 C++ 实例化+编译例程。
Basically, the answer is no, you can't. But you could link to the clang libraries and instantiate+compile the routines directly from C++ at runtime.