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

Autres éditeurs Discussion :

[TCC] Problème de liaison avec les librairies, mais pas avec les fichiers objets


Sujet :

Autres éditeurs

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut [TCC] Problème de liaison avec les librairies, mais pas avec les fichiers objets
    Buena note,

    Je rencontre un problème étrange avec TCC (s'il y en a qui l'utilise).

    Il ne parvient pas à lier avec un librairie généré avec ar, alors qu'il parvient à lier normalement si on lui fourni directemet les fichiers objets.

    je donne un exemple simplifié, avec deux fichiers source.

    le fichier a.c
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <stdio.h>
    extern char* text();
    int main(void)
    {
        printf("\nText: %s\n", text());
       return 0;
    }

    le fichier b.c
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char* text(void)
    {
        return "petit bout de texte";
    }

    Si je fais ensuite
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    tcc -c -o b.o b.c
    ar -r libtest.a b.o
    tcc "-I..\include" "-L..\lib" "-L." -ltest a.c
    TCC me renvoit le message, "undefined symbol 'text' "

    Mais si je fais
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tcc -c -o b.o b.c
    tcc "-I..\include" "-L..\lib" "-L." b.o a.c
    alors ça marche.

    Comment expliquer cela ?

    J'ai vérifié le format de la librairie avec objdump, et elle semble Ok. Mais j'ai remarqué tout de même que les librairies fournies d'origine avec TCC contiennent des fichiers objet au format PE, alors que TCC ne produit que du ELF. Et ma librairie est au format ELF.

    Mais je serais surpris que TCC exigent que les module dans les librairies soit au format PE... ce serait étrange.

    Si quelqu'un a une idée, ou si c'est la manière de créer la librairie qui n'est pas convenable...

    Je donne en tous cas un exemple de la librairie en pièce jointe, au cas où quelqu'un(e) y découvre quelque chose qui ne va pas.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Session ok avec PHP 5 mais pas avec PHP 6
    Par ceweb dans le forum Langage
    Réponses: 5
    Dernier message: 23/07/2009, 16h10
  2. Réponses: 7
    Dernier message: 19/02/2008, 15h30
  3. Mon script fonctionne avec un bouton, mais pas avec l'image!
    Par julien.63 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/04/2006, 16h26
  4. CSS : Bordure sur les liens mais pas sur les images ?
    Par monstroplante dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/02/2006, 14h18
  5. [CSS] border-collapse sur les TR mais pas sur les TD.
    Par hpfx dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/04/2005, 16h16

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