【发布时间】:2011-12-15 20:19:26
【问题描述】:
我目前正在努力将一组 c++ 二进制文件升级为基于 Autotools 的更现代的东西,这些二进制文件每个都使用自己的 Makefile 集。但是我不知道如何在构建/打包过程中包含第三方库(例如 Oracle Instant Client)。
这是我错过的非常简单的事情吗?
编辑以添加更多细节
我当前的构建环境如下所示:
/src
/lib
/libfoo
... source and header files
Makefile
/oci #Oracle Instant Client
... header and shared libraries
Makefile
/bin
/bar
... source and header files
Makefile
Makefile
/build
/bin
/lib
build.sh
今天顶层 build.sh 做了以下步骤:
- 运行每个库的 Makefile 并将输出复制到 /build/lib
- 运行每个二进制文件的 Makefile 并将输出复制到 /build/bin
每个 Makefile 都有一组指向各个同级目录的硬编码路径。不用说,这已成为维护的噩梦。我已经开始测试自动工具,但我卡住的地方是找出相当于将 /src/lib/oci/*.so 复制到 /build/lib 以进行编译时链接和捆绑到发行版中。
【问题讨论】:
-
这个基于自动工具的程序到底是什么......
-
它是我在工作中使用的一组内部开发的程序。
-
嗯,有通常的自动工具机制来检查和/或包含库,从
AC_SEARCH_LIBS开始,或者只是使用myprog_LDADD = -loic-foo... 前提是您的衍生品中仍然存在我们一无所知的关于。 -
我的编辑是否解释了我正在尝试做的更多事情?
标签: c++ autotools oracle-call-interface