我目前正在努力将一组 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 以进行编译时链接和捆绑到发行版中。