cmake; make; ctest; make install
работает нормально: генерирует libA
, запускает testB
и устанавливает libA
в ${CMAKE_INSTALL_LIBDIR}
.
Теперь я изменяю libA
и перезапускаю make; ctest
. Никакой реакции на мои модификации: ldd testB
показывает, что используется установленная версия libA
. Что является чепухой для теста. Тест должен всегда использовать локальную версию libA
, никогда установленную.
Я видел много советов, касающихся RPATH
, но не нашел варианта, который помог бы.
Так что я жестко запрограммировал путь, изменив
target_link_libraries(testB PRIVATE A)
в
target_link_libraries(testB PRIVATE ${CMAKE_BINARY_DIR}/lib/libA.so).
Это работает, но больше не зависит от платформы. Как решить мою проблему так, чтобы она работала кроссплатформенно, включая Windows?