Oracle 11 fonctionne sous HP-UX 11.31 et gcc 4.4.3. Il semble qu'il n'y ait aucun moyen de lier à occi, car il a été construit avec aCC. Y at-il une solution de contournement pour cela? J'ai eu l'idée idiote que je pourrais en quelque sorte construire une bibliothèque qui prédit essentiellement la connexion - construire la bibliothèque avec aCC d'une manière qui pourrait être liée à par gcc. Est-ce possible?Est-il possible de compiler/créer un lien avec gcc sur HPUX?
Répondre
Non, il n'y a pas moyen de contourner cela.
Différents compilateurs C ont un code interchangeable utilisant un ABI standard. Vous pouvez mélanger et assortir leur code objet plus ou moins en toute impunité. Cependant, différents compilateurs C++ ont différentes conventions qui signifient que leur code objet n'est pas compatible. Celles-ci se rapportent à la mise en page de classes (en particulier dans les hiérarchies d'héritage multiples et au redoutable «diamant de la mort»), mais aussi aux conventions de manageage de noms et au traitement des exceptions. Les schémas de gestion de noms sont délibérément rendus différents de sorte que vous ne pouvez pas lier accidentellement des objets d'un compilateur à un autre.
Généralement, si les bibliothèques sont construites à l'aide d'un compilateur C++, vous devez lier votre code en utilisant le même compilateur C++ ou du moins un compilateur compatible. Et cela signifie presque invariablement un compilateur de la même famille. Par exemple, vous pourriez être en mesure d'utiliser G ++ 4.5.0 même si le code a été construit avec G ++ 4.4.2. Cependant, vous ne pourrez pas mélanger aCC avec G ++.