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 :

Comment transformer mon script .dll en .so


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut Comment transformer mon script .dll en .so
    Bonjour,
    J'ai téléchargé un script où il y a les sources + le .dll.
    Mais je doit faire tourner ce script sous Linux.
    Et je ne m'y connais pas du tout en C++ (d'ailleur, je ne sais pas si c'est vraiment du C++).
    Bref, ayant les sources du script, comment faire pour le transformer en version linux ?
    Merci.

  2. #2
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Bonjour.

    [ame="http://www.google.com/search?q=gcc+build+shared+object+library&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:fr:official&client=firefox-a"] est ton ami [/ame]
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    Oula, j'ai rien compris à ta recherche
    Peut tu m'indiquer c'est quoi ??

    PS : Voici les sources : http://hellslair.servegame.com/Downl...ysqlRC1src.zip

  4. #4
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    en fait, so= Shared Object (c'est bien l'équivalent de Dynamic Linking Library)

    dans la recherche, regarde le second lien, il y a tout ce qu'il faut

    bonne chance
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    en fait, dans la source de mon script, j'ai :
    -deux fichiers .cpp
    -un fichier .h
    -un dossier SDK => - Un fichier .cpp et deux .h
    -un dossier release => des fichiers .obj, .idb, .pdb...

    Bref, c'est pas que je comprend pas tout au 2eme lien, mais c'est que je comprend rien au script.
    Quel fichier je dois modifier dans la source pour obtenir mes fichiers .so ?

    PS : Je te remercie de m'aider

  6. #6
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    en fait, ce que t'explique le tutoriel c'est qu'il faut entrer quelques instructions en console (ou dans un fichier de script (.sh) et le lancer)
    Premièrement, supprime tes .o existants (ils ont probablement été compilés sous windows).


    ensuite, tu te met dans le dossier de tes sources (avec cd) et tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -c -fPIC toncpp.cpp -o toncpp.o
    ce qui signifie "compile moi "toncpp.cpp" et fais en un fichier objet "toncpp.o" mais n'essaye pas de le linker et fait en sorte qu'il soit linkable dynamiquement";

    ensuite, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -shared -Wl,-soname,libtoncpp.so.1 -o libtoncpp.so.1.0.1  toncpp.o
    ce qui veut dire "fait moi le fichier de librairie dynamique libtoncpp.so.1.0.1 à partir de toncpp.o" et je ne sais pas à quoi sert "-Wl,-soname,libtoncpp.so.1" mais c'est très important parait-il

    bonne chance
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    J'ai plusieurs erreurs avec main.cp :

    main.cpp:28: error: expected constructor, destructor, or type conversion before '(' token
    main.cpp:43: error: expected constructor, destructor, or type conversion before '(' token
    main.cpp:67: error: expected constructor, destructor, or type conversion before '(' token
    main.cpp:82: error: expected constructor, destructor, or type conversion before '(' token


    La ligne par exemple 82 est : EXPORT void Pulse()

  8. #8
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par ApocKalipsS Voir le message
    J'ai plusieurs erreurs avec main.cp :

    main.cpp:28: error: expected constructor, destructor, or type conversion before '(' token

    La ligne par exemple 82 est : EXPORT void Pulse()
    Je n'ai pas la moindre idéee de l'erreur, et je dois dire que je n'ai pas cherché non plus. il s'agit peut-être d'un problème avec un header mais plus probablement cela vient de types non déclaré. quoi qu'il en soit, ce n'es plus le même problème je te conseille de créer un nouveau sujet dans lequel tu postera explicitement ton code de les erreur associées ainsi que la manière dont tu compile.

    Ps: tu a bien installé g++ hein ? pas seulement gcc (je ne sais plus si g++ est de base ou pas sur ubuntu).

    Bonne chance
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

Discussions similaires

  1. Comment tester mon script de purge
    Par PAB/31/SAB dans le forum VBScript
    Réponses: 0
    Dernier message: 01/06/2011, 17h24
  2. Réponses: 7
    Dernier message: 03/03/2010, 18h33
  3. comment executer mon script perl
    Par specimen35 dans le forum Langage
    Réponses: 0
    Dernier message: 19/12/2007, 16h16
  4. Comment simplifier mon script ?
    Par MMO95 dans le forum Langage
    Réponses: 7
    Dernier message: 09/01/2007, 00h21
  5. [Date] Comment transformer mon String en date avec newDate?
    Par Devil666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/06/2005, 16h50

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