2016-06-20 5 views
0

kompiliert werden muss Ich habe Oger-Rendering-Code, der mit C++ 03 kompiliert, aber nicht mit C++ 11.ist es möglich, eine mit C++ 11 kompilierte Bibliothek mit einem Code zu verknüpfen, der mit C++ 03

Ich habe Bullet Physik-Code, der mit C++ 11 kompiliert, aber nicht mit C++ 03.

Jetzt möchte ich sie verbinden. Ist es möglich, den Bullet-Code mit C++ 11 zu kompilieren und die resultierende Bibliothek aus Oger-Code aufzurufen, der mit C++ 03 kompiliert werden soll.

meine gcc Version 4.8.4

OGRE wird als statisch aufgebaut. Bullet wird auch als statisch erstellt.

+0

Wird die Kugel Bibliothek als eine statische oder gemeinsam genutzte Bibliothek gebaut werden? Wenn es eine gemeinsam genutzte Bibliothek ist, dann sollte es am besten funktionieren, es sei denn, Sie möchten eine Funktion aufrufen oder eine Klasse verwenden, die von bestimmten C++ 11-Funktionen abhängig ist. Wenn es sich um eine statische Bibliothek handelt, ist dies nur möglich, wenn Sie eine Verknüpfung mit einer Standardbibliothek herstellen, die über die von der Bibliothek benötigte C++ 11-Funktionalität verfügt. –

+0

siehe oben – user27665

Antwort

0

Ja, es ist möglich, solange Sie die gleiche libstdC++ ABI verwenden, und da die neue C++ 11 ABI mit g ++ 5.1 eingeführt wurde (siehe using dual abi), sollte es für Sie in Ordnung sein.

edit: this answer für eine vollständigere Antwort sehen, speziell in Bezug auf ABI Inkompatibilität mit g ++ 4.7.0 und g ++ 4.7.1

Verwandte Themen