我可以从 automake/autoconf 中提取 libtool 配置以供单独使用吗?

Can I extract libtool configuration from automake/autoconf for seperate use?

我有一个简单的 C++ 库,它使用简短的 autoconf、automake 和 libtool 来构建共​​享库对象。

现在我希望能够在 运行 时间在我的程序中动态编译新代码,方法是:

我想找到 运行 执行此操作所需的命令。我可以看到 运行ning 'make -n' 使用的命令,但我真的不想尝试使用 awk 来搜索和替换这些命令的位!

这个问题可以分解为以下子问题:

  • 确定您是如何编译程序本身的(编译器和/或标志不应混用,尤其是在 C++ 语言的情况下)。 为此,您可以使用 AC_DEFINE [=] 将 CCCXXCFLAGSCXXFLAGSCPPFLAGS 导出到 config.h 文件configure.ac 中的 16=] 宏。或者您可以使用 AC_SUBST 和您的自定义 header.h.in 将这些变量存储在您选择的文件中。

  • 然后你调用编译器 CC 给他 CPPFLAGSCFLAGS 或者 CXXCPPFLAGSCXXFLAGS .但是,如果你想通过你的程序加载这些文件,你可以考虑使用名为 libltdl 的 Libtool 库,它以跨平台的方式实现插件。

  • 您可以考虑使用 libtool 脚本作为跨平台编译包装器,但您必须 study 稍微使用一下,因为它有点神秘 - 有编译、链接和 "installation" 阶段,但它们是以跨平台的方式处理的,如果你传递 -sharee 参数,你需要的一些额外标志(-fPIC 和可能的其他)将被传递自动地。