makefile - 有没有办法重建链接到静态库的二进制文件
问题描述
我正在使用 Makefile 开发在 RHEL 上构建的软件。构建系统同时生成 .a(静态库)和 .so(动态库)。这些库是庞大程序的独立部分。
如果我更改二进制文件的源代码并运行构建,我将重建二进制文件,一切都会好起来的。但是,如果我更改 .a 库(生成该库的文件之一)中的源代码并尝试构建,则构建系统将仅重新生成该库。它不会重新链接 .a 文件链接到的二进制文件。
是否有任何特殊标志可以用来强制make
命令重新链接需要重新链接的二进制文件?
蒂亚!
解决方案
make
只是一个执行makefile的工具。实际的构建规则是 makefile 的一部分,由 makefile 作者编写正确的规则。在您的情况下,makefile 作者似乎忽略了将静态库列为构建二进制文件的规则中的先决条件(依赖项)。这意味着如果静态库更改,make 不会自动重新链接二进制文件。
根据构建系统的复杂性,这可能很难修复,或者只是添加libfoo.a
到主二进制文件的依赖项列表中的问题。
推荐阅读
- php - 没有特殊字符的php文件搜索
- linux - 有没有办法像自动热键一样将字符串作为击键发送?
- python - 添加新行重置添加的列计算
- python - 是否有相当于为字典附加条件列表的字典理解?
- c++ - MKL 示例代码使用 cmake 编译良好,但运行时崩溃
- plot - 在 Maxima 中显示 3D 函数的有组织的自上而下视图
- api - 在我的 MVC Web Api 上放置可能导致内部服务器错误的内容:500
- react-native - React-Native-Image-Picker:null 不是对象(评估)错误
- python - 位置 + 欧拉角到变换矩阵
- c# - 在依赖注入 Blazor 应用程序中使用相同 DbContext 的多个线程