我已经向我们的客户发送了我们的图书馆(.a
,.so
)以及.h
个文件。
现在我在.h
文件中几乎没有变化。所以我的问题是,我是否需要发送更新的.a
,.so
或发送.h
。
客户将使用旧.h
替换.h
个文件。
这会有用吗?
答案 0 :(得分:1)
这取决于您在.h文件中更新的内容。
如果您更新了不需要重新编译的内容(例如一些注释?),那么您可以只提供更新的.h文件。
但是,一般,我认为为了安全起见,如果你更改标题,那么重新编译整个模块是一个很好的做法(所以,你可能想要向您的客户端重新发送对象和库二进制文件。)
答案 1 :(得分:1)
如果你移动了一个成员函数声明,你绝对必须重新发布。
这是因为任何v表都将失效。
内联也会改变链接行为:旧库将导出一个修饰的非内联函数,该函数与新版本标题指定的行为不一致。
答案 2 :(得分:0)
是的,您应该使用.a / .so升级.h。例如。你已经改变了一些现在更大/更小的数据结构。只需更新标题即可获得堆腐败错误。
答案 3 :(得分:0)
要问自己的一个问题是:什么是“scons'办?
我有一些使用scons作为构建工具的项目。我注意到当我更改头文件时,scons总是编译受影响的模块,但有时并不觉得需要重建它们是组件的库或可执行文件。
一般来说,在向客户发布之前重新编译所有内容是一种好习惯,但如果scons发现它不需要重建,那么事实上你应该什么都不发布。