Здраствуйте! Меня зовут Константин. Прочитал вашу статью на Хабре. https://habr.com/ru/articles/220961/ Очень интересно!
Возник вопрос. У меня похожая сейчас ситуация. В основном приложении используется библиотека (динамическая) Qt6.2.4, и пишу плагин (динамическая библиотека, которая загружается в основную программу) на Qt6.2.9. И естественно из-за конфликта имен - происходит ошибка. Qt6.2.9 собрал из исходников. Есть ли возможность добавить в сборку version-script для линковщика, в котором будут сразу учитываться все экспортируемые функции?
Как и описано в вашей статье, я создал файл version-script с таким содержанием:
VERSION6.2.9 {
global: *;
};
И в CMakeLists.txt исходников Qt6.2.9 добавил строку: set (CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} "-Wl,--version-script=${CMAKE_SOURCE_DIR}/export_symbols")
Сейчас собираю заново Qt6.2.9, но команда readelf -sW ./libQt6Core.so.6.2.9 выводит абсолютно такие же символьные имена функций, как и до применения version-script.
Помогите пожалуйста разобраться!