[英]Can I extract libtool configuration from automake/autoconf for seperate use?
我有一个简单的C ++库,它使用简短的autoconf,automake和libtool构建共享库对象。
现在,我希望能够在运行时在程序中通过以下方式动态编译新代码:
我想找到执行此操作所需的命令。 我可以看到运行'make -n'所使用的命令,但是我真的不想尝试使用awk搜索和替换这些命令的位!
此问题可以分解为以下子问题:
确定程序本身的编译方式(编译器和/或标志不应混合使用,尤其是在使用C ++语言的情况下)。 您可以通过出口做CC
, CXX
, CFLAGS
, CXXFLAGS
以及CPPFLAGS
到config.h
使用文件AC_DEFINE autoconf
宏configure.ac
。 或者,您可以使用AC_SUBST
和自定义header.h.in
将这些变量存储在您选择的文件中。
然后,您调用编译器CC
给他CPPFLAGS
和CFLAGS
或CXX
和CPPFLAGS
和CXXFLAGS
。 但是,如果要通过程序加载这些文件,则可以考虑使用名为libltdl的Libtool库,该库以跨平台的方式实现了插件。
您可能考虑使用libtool
脚本作为跨平台的编译器包装,但是您必须对其进行一些研究 ,因为它有点奥秘-存在编译,链接和“安装”阶段,但是它们以跨平台的方式处理如果您传递-sharee
参数,则会自动传递所需的一些其他标志( -fPIC
和其他标志)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.