Я распространяю общую библиотеку (С++) и модуль Python, который использует эту библиотеку. Я создаю модифицированную версию Bullet Physics Library (как подпроект CMake). Я использую классы и функции Bullet только в одном файле --bullet_interface.cpp -- и все содержимое Bullet скрыто внутри "namespace {...}".
Проблема в том, что некоторые другие библиотеки требуют Bullet как системную зависимость и ссылаются на системную версию Bullet. Фактически, одна из зависимостей моей библиотеки (libopenrave) экспортирует символы Bullet. (точнее, иногда он динамически загружает плагин, который экспортирует символы Bullet).
Мне интересно, есть ли способ создать мою библиотеку, чтобы bullet_interface.cpp использовал правильные функции Bullet, но тогда моя библиотека не делает видимыми какие-либо символы Bullet. Я не могу использовать системный маркер, потому что мне пришлось внести изменения в исходный код. Одним из хакерских решений было бы переименовать все функции и классы Bullet с помощью поиска и замены (почти все содержат строку «bt»). Есть ли способ лучше?
Bullet
библиотеку и использование THAT в качестве системной библиотеки. - person Mark B   schedule 12.02.2013