C++是一种静态的编译语言,模板在编译时就可以解析,等等。

但是,是否有可能在运行时创建一个功能,而该功能未在源代码中描述,并且在编译期间未转换为机器语言,因此用户可以向其抛出源代码中未预料到的数据?

我知道这不可能以直接的方式发生,但是可以肯定,这是有可能的,有很多编程语言没有经过编译,无法动态创建用C或C++实现的东西。

也许如果创建所有原始类型的工厂以及合适的数据结构以将它们组织为更复杂的对象(例如用户类型和功能),这是可以实现的吗?

欢迎提供有关该主题的任何信息以及在线 Material 的指针。谢谢!

编辑:我知道这是可能的,这更像是我对实现细节感兴趣:)

最佳答案

,当然,没有其他答案中提到的任何工具,但是只是使用C++编译器

只需在C++程序中执行以下步骤(在Linux上,但在其他操作系统上必须类似)

  • 使用ofstream
  • 将C++程序写入文件(例如,在/tmp/prog.cc中)
  • 通过system("c++ /tmp/prog.cc -o /tmp/prog.so -shared -fPIC");编译程序
  • 动态加载程序,例如使用dlopen()
  • 09-10 03:46
    查看更多