2010-07-29 2 views

Répondre

1

Comme C++ n'a pas de ABI normalisé, et comme Visual C++ et g ++ ont en particulier presque certainement des ABI différents, je ne pense pas que vous puissiez le faire. Votre seule vraie option est de vous limiter à C, pas C++.

Edit: Si toutes les bibliothèques que vous utilisez sont C droite (extern "C", en C++ termes), alors vous devriez être en mesure de partager des bibliothèques entre les compilateurs. (Sinon, vos applications Cygwin et MinGW ne peuvent pas appeler l'API Windows.) Vous devrez faire attention à faire correspondre les conventions d'appel. Par exemple, l'API Windows utilise __stdcall au lieu de la convention d'appel C standard. Vous pouvez indiquer à GCC la convention d'appel à utiliser avec function attributes. Google et les fichiers d'en-tête de votre bibliothèque devraient avoir plus d'informations sur la convention d'appel à utiliser.

+0

En fait, je veux seulement utiliser C-Language. C'est possible? – Thangaraj

+0

C'est certainement plus facile avec C, mais le format de lib statique est toujours différent. –

+0

Merci mon pote, Vraiment ce sens. Mais quand j'essaie de compiler mon programme, j'obtiens des erreurs de déclaration en double. Avez-vous la moindre idée de comment corriger cette erreur. Voici le scénario, la bibliothèque est déjà compilée. Si j'utilise cette lib dans VC environnement je suis capable de compiler le programme sans aucun problème. mais dans cygwin gcc je reçois des erreurs de déclaration en double. – Thangaraj

0

Probablement pas

Il y a mingw un port de GCC (et beaucoup d'outils gnu) aux fenêtres qui utilise des fenêtres standards libs - il est à peu près une baisse de remplacement pour Cygwin et devrait être plus facile de créer un lien vers gcc.

+0

En fait, il ne s'agit pas d'un remplacement direct - Cygwin tente de créer un environnement Posix au-dessus de Windows - MinGW GCC est simplement un exécutable Windows normal qui ne fait aucune tentative de ce genre. –

+0

@Neil Butterworth - vrai, l'utilisation de gcc dans MINGW est la même chose. Mais le code écrit pour une plate-forme Posix qui construit avec Cygwin ne construit pas nécessairement avec MINGW, bien que la plupart des choses le feront. –

Questions connexes