STL and release/debug library mess

I'm using some 3rd party. I'm using it's shared library version, since the library is big (~60MB) and is used by several applications.

Is there a way at application startup to find out that release/debug version of library is used respectively for release/debug version of my application?

Longer description

The library which exposes C++ interface. One of API methods return std::vector<:string>.

The problem when I compile my application in debug mode, debug version of the library should be used. Same for release. If incorrect version of the library is used application is crashed.

According to gcc (see http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt03ch17s04.html)

but with a mixed mode standard library который может использовать любой режим отладки или объекты basic_string в режиме выпуска, все становится сложнее

PS 1

Похоже, предложение Timbo является возможным решением - использовать другое soname для библиотек отладки и выпуска. Итак, что нужно передать в сценарий ./configure для изменения имени файла библиотеки?

PS 2

Моя проблема не во время компоновки, а скорее во время выполнения.

PS 3

Здесь вопрос, демонстрирующий проблему, с которой я столкнулся.

10
задан Community 23 May 2017 в 12:25
поделиться