Итак, у меня есть общая библиотека lib1.so
, связывающая libopencv_core.so.4.2
PRIVATE (подтверждено с помощью ldd)
В другом проекте у меня есть цель lib2
, которая связывает libopencv_core.so.3.2
и цель t
который связывает как lib1.so
, так и lib2
.
Я надеялся и думал, что они lib1.so
останутся с его явной компиляцией и используют opencv4
и t
для компиляции с opencv3
, поэтому что функции lib2, которые используются t
, остаются с opencv3
По какой-то причине я получаю undefined reference to opencv4 specific function
для lib1.so
во время компиляции цели t
, хотя lib1.so
уже сгенерирован явной компиляцией.
Я предполагаю, что это означает, что компиляция t
перезаписывает opencv
привязку lib1.so
, но я не понимаю, почему это происходит.
Может ли кто-нибудь объясните, почему это происходит, и объясните, как я могу это решить?