G ++ новые проблемы ABI

У меня проблема с новым ABI, представленным для C ++ 11 в GCC. После обновления до GCC 5.3 мой проект больше не компилируется. Сообщения об ошибках, которые я получаю, просты:

undefined reference to `tokenize(std::__cxx11::basic_string'  ...more characters

или же

undefined reference to `extract(std::string const&)'

Итак, похоже, что я что-то напутал, и GCC не может решить, хочу ли я старый ABI или новый (__cxx11:: часть отсутствует в некоторых сообщениях об ошибках, а присутствует в других)?

Я попытался несколько решений, чтобы решить эту проблему:

прохождение-D_GLIBCXX_USE_CXX11_ABI=0 в GCC,прохождение-D_GLIBCXX_USE_CXX11_ABI=1 в GCC,установка макроса непосредственно в исходном коде,установкаabi_tag атрибут в декларациях GCC жаловался, когда прошел-Wabi-tag флаг,

К сожалению, ни один из них не сработал (т.е. позволил скомпилировать код). Я знаю только одно: возвращаются только функцииstd::string или принимая его как параметр, не удалось связать. Что и следовало ожидать, учитывая то, что я прочитал о проблеме в Интернете. Мне не удалось воспроизвести проблему в простой, примерной программе, чтобы представить ее здесь.

Есть ли какое-то очевидное решение моей проблемы, которого мне не хватает?

Ответы на вопрос(1)

Ваш ответ на вопрос