2016-06-20 2 views
0

У меня есть код рендеринга ogre, который компилируется с C++ 03, но не с C++ 11.можно связать библиотеку, скомпилированную с C++ 11, с кодом, который необходимо скомпилировать с помощью C++ 03

У меня есть код физики пули, который компилируется с помощью C++ 11, но не с C++ 03.

Теперь я хочу с ними связаться. Можно ли скомпилировать код пули с помощью C++ 11 и вызвать полученную библиотеку из ogre-кода, который должен быть скомпилирован с помощью C++ 03.

мой НКУ версия 4.8.4

OGRE построен как статический. Пуля также создается как статическая.

+0

Будет ли библиотека Пули быть построена как статическая или разделяемой библиотека? Если это общая библиотека, тогда она должна работать в основном отлично, если вы не хотите вызывать какую-либо функцию или использовать какой-либо класс, который зависит от конкретной функциональности C++ 11. Если это статическая библиотека, то это будет невозможно, если вы не свяжетесь со стандартной библиотекой, в которой есть библиотека C++ 11, необходимая библиотеке. –

+0

см. Редактировать выше – user27665

ответ

0

Да, это возможно, если вы используете тот же libstdC++ ABI, и поскольку новый C++ 11 ABI был введен с g ++ 5.1 (см. using dual abi), это должно быть хорошо для вас.

редактировать: см this answer для более полного ответа, особенно в отношении ABI несовместимости с г ++ 4.7.0 и г ++ 4.7.1

Смежные вопросы