繁体   English   中英

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

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

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

现在,我希望能够在运行时在程序中通过以下方式动态编译新代码:

  • 将代码输出到临时文件(例如/tmp/code.cc)
  • 编译成库
  • 动态将code.so加载到我的代码中

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

此问题可以分解为以下子问题:

  • 确定程序本身的编译方式(编译器和/或标志不应混合使用,尤其是在使用C ++语言的情况下)。 您可以通过出口做CCCXXCFLAGSCXXFLAGS以及CPPFLAGSconfig.h使用文件AC_DEFINE autoconfconfigure.ac 或者,您可以使用AC_SUBST和自定义header.h.in将这些变量存储在您选择的文件中。

  • 然后,您调用编译器CC给他CPPFLAGSCFLAGSCXXCPPFLAGSCXXFLAGS 但是,如果要通过程序加载这些文件,则可以考虑使用名为libltdl的Libtool库,该库以跨平台的方式实现了插件。

  • 您可能考虑使用libtool脚本作为跨平台的编译器包装,但是您必须对其进行一些研究 ,因为它有点奥秘-存在编译,链接和“安装”阶段,但是它们以跨平台的方式处理如果您传递-sharee参数,则会自动传递所需的一些其他标志( -fPIC和其他标志)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM