我知道在链接共享库时可以使用版本脚本,例如
some_version { global: foo; };
专门针对此库进行链接时,其他对象将针对foo@@some_version
进行链接,因此可以防止版本问题。
但是,如果将某个对象链接到同一库的未使用版本控制的旧版本,则它将仅链接到foo
,而我的新库仍将满足。我不要我的图书馆破坏了foo的ABI。我希望ldd从旧库中选择旧符号以获取旧代码。
那么有没有办法使我的图书馆提供foo@@some_version
(或foo@some_version
)而不是普通的foo
?