IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Compilation sun solaris


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Compilation sun solaris
    Bonjour,
    je viens de récupérer un ensemble de batchs en c++ compilés sur une machine en solaris 8 avec le compilateur de Sun WorkShop 6 (update 2 C++ 5.3 Patch 111685-20 2004/03/19). Hélas je ne dispose pas de ce compilateur. Je suis en train de télécharger sun studio 11 pour éventuellement l'installer sur mon serveur solaris ... mais ce n'est pas vraiment ça qui m'intéresse (pas besoin d'un ide complet juste du compilateur... et puis pas d'interface graphique sur ce serveur).

    J'aimerais savoir si je peux avoir un compilateur parfaitement compatible qui me permette au moins de tester l'état actuel de fonctionnement des batchs sans installer une usine à gaz.

    J'ai installé gcc mais je rencontre pour l'instant des erreurs et warnings à la compilation qui ne se présentaient pas à la compilation avec sun workshop. (ci après les logs de compilation) Je préfèrerais me garantir en utilisant le compilateur d'origine si possible.

    Merci pour vos contributions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /usr/local/bin/gcc    -c -fPIC -Ieqbldll  -I/usr/openwin/include  -I/usr/dt/include  -I/sybase/s12501_2/OCS-12_5/include -o /export/envReinette/hom/eq1/eq1adm/up/07_00_00.000/horsversion/batch/dev_release/eqbcconn.o eqbldll/eqbcconn.cpp
    In file included from eqbldll/eqbccont.h:35,
                     from eqbldll/eqbcconn.h:29,
                     from eqbldll/eqbcconn.cpp:31:
    eqbldll/StdString.h: In function `int ssvsprintf(wchar_t*, size_t, const wchar_t*, void*)':
    eqbldll/StdString.h:1627: error: invalid conversion from `const wchar_t*' to `size_t'
    eqbldll/StdString.h:1627: error: invalid conversion from `void*' to `const wchar_t*'
    /usr/include/iso/wchar_iso.h:193: error: too few arguments to function `int vswprintf(wchar_t*, size_t, const wchar_t*, void*)'
    eqbldll/StdString.h:1627: error: at this point in file
    eqbldll/StdString.h: In member function `CT* CStdStr<CT>::GetBuf(int)':
    eqbldll/StdString.h:2325: error: there are no arguments to `size' that depend on a template parameter, so a declaration of `size' must be available
    eqbldll/StdString.h:2325: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    eqbldll/eqbcconn.cpp: In member function `BOOL C_Connexion::ExecuterFichierCommande(CString)':
    eqbldll/eqbcconn.cpp:265: error: `nocreate' is not a member of `std::ios'
    eqbldll/eqbcconn.cpp: In member function `BOOL C_Connexion::LireColonneSuivante(CS_INT&)':
    eqbldll/eqbcconn.cpp:1251: warning: converting to non-pointer type `long int' from NULL
    eqbldll/eqbcconn.cpp: In member function `BOOL C_Connexion::EcrireCorpsErreur()':
    eqbldll/eqbcconn.cpp:1728: warning: passing NULL used for non-pointer converting 1 of `std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>]'
    *** Error code 1
    make: Fatal error: Command failed for target `/export/envReinette/hom/eq1/eq1adm/up/07_00_00.000/horsversion/batch/dev_release/eqbcconn.o'

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Tu pourrais envisager l'utilisation d'un compilateur croisé.

    L'idée de base est simple: tu compile ton compilateur de manière à ce qu'il crée des applications capable de fonctionner sur le système que tu vise.

    Ce qui tombe bien, c'est que, sauf erreur, il me semble que l'un des compilateurs dont on peut disposer sur solaris est Gcc, et qu'il est donc normalement *relativement* facile de le compiler pour en faire un compilateur croisé

    Cependant, il faudra que tu trouves au minimum les sources de la bibliothèque C utilisée sous solaris, et s'assurer que ton code n'utilise pas de fonction propres au compilateur de sun.
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Il est bon pour oublier gcc.
    Son code est très vieux, au point d'utiliser des trucs pré-standard, cf le nocreate (souvenez-vous). Sans parler que de mettre un size_t dans un wchar_t* (ou le contraire), c'est louche : il doit y avoir des écarts de signature quelques part.

    @OP.
    Bon, tu auras un IDE en plus du compilo. Où est le problème ?

    Mais pourquoi tu ne demandes pas à ceux qui t'ont filer les sources l'accès à leurs moyens de compilation? Il doit bien avoir une clause dans le contrat pour qu'il vous financent une vieille version des outils, non ? Parce que bon, Compiler avec le dernier compilo des vieux codes, même si la lib "standard" dépréciée de Roguewave est toujours livrée avec les dernières versions du compilo, tu ne seras pas à l'abri d'autres surprises.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Je vous remercie pour vos réponses cela m'a permis de prendre une meilleure mesure des choses. Cependant, dans le cadre actuelle cela représentera trop de travail dans un domaine inconnu et pour des applications qui ne seront pas maintenues sous cette forme.
    Pour répondre quand même à vos propositions :
    @koala : J'avoue ne pas avoir tout compris et cela me semble une opération coûteuse en temps vu mes compétences du domaine.

    @Luc : Concernant l'installation d'un IDE elle est bien coûteuse sur le serveur (pas forcément prévu à cet effet) et que l'espace se trouve limité. Concernant l'accès au moyen de compilation du client, disons que cela ne sera pas possible (je ne rentre pas dans les détails) mais bien sûr c'était la première solution envisagée.

    Merci pour vos réponses

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Le fait qu'un serveur Unix n'ait pas de carte graphique n'est pas un problème. X est un protocole réseau pour l'affichage à distance avant tout, même si bien souvent le serveur X et les applications tournent sur la même machine.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. Ubuntu -> Sun Solaris 9 : pb execution ld
    Par zazou0506 dans le forum Solaris
    Réponses: 3
    Dernier message: 12/01/2008, 18h16
  2. SGBD sur SUN Solaris avec synchro fichier txt
    Par Nicos77 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/02/2007, 15h03
  3. [DUAL BOOT] Windows XP & Sun Solaris 10
    Par benjapar dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 31/10/2006, 17h10
  4. Sniffer réseau pour sun solaris
    Par Longrais dans le forum Réseau
    Réponses: 3
    Dernier message: 21/09/2006, 09h54
  5. Petits warnings apres compilation sous Solaris
    Par Thordax dans le forum C++
    Réponses: 22
    Dernier message: 04/07/2006, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo