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

Haskell Discussion :

Erreur recompilez avec -fPIC


Sujet :

Haskell

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mars 2017
    Messages : 93
    Points : 60
    Points
    60
    Par défaut Erreur recompilez avec -fPIC
    Bonjour,

    Je viens d'installer Haskell (plus précisément ghc et cabal en suivant les instructions pour Debian Jessie) sur Kali Linux (4.19.0-kali1-amd64 #1 SMP Debian 4.19.13-1kali1) et je tente de compiler le programme suivant avec ghc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fac 0 = 1
    fac n = n*fac(n-1)
     
    main = print(fac 42)
    Voici les erreurs que j’obtiens :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    [1 of 1] Compiling Main             ( fac.hs, fac.o ) [flags changed]
    Linking fac ...
    /usr/bin/ld: fac.o: relocation R_X86_64_32S against symbole `stg_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__125.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__124.o): relocation R_X86_64_32S against symbole `base_GHCziException_SomeException_con_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__122.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__120.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__118.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__117.o): relocation R_X86_64_32 against symbole `base_ControlziExceptionziBase_zdfShowNestedAtomically1_closure' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__116.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__115.o): relocation R_X86_64_32S against symbole `base_GHCziException_SomeException_con_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__113.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__111.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__109.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__108.o): relocation R_X86_64_32 against symbole `base_ControlziExceptionziBase_zdfShowNonTermination1_closure' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__47.o): relocation R_X86_64_32 against symbole `base_ControlziExceptionziBase_zdfExceptionNonTermination4_closure' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__44.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__43.o): relocation R_X86_64_32 against symbole `base_ControlziExceptionziBase_zdfExceptionNestedAtomically4_closure' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__40.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__39.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__38.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__16.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__15.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__14.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__13.o): relocation R_X86_64_32S against symbole `stg_bh_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Base__148.o): relocation R_X86_64_32S against symbole `stg_upd_frame_info' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Signal__13.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Signal__12.o): relocation R_X86_64_32S against `.text' can not be used when making un objet PIE; recompilez avec -fPIC
    /usr/bin/ld: /usr/lib/ghc/base_HQfYBxpPvuw8OunzQu6JGM/libHSbase-4.8.2.0-HQfYBxpPvuw8OunzQu6JGM.a(Signal__10.o): relocation R_X86_64_32S against symbole `stg_ap_2_upd_info' can not be used when making un objet PIE; recompilez avec -fP
     
    .............................................................
    Quelqu'un pourrait-il m'aider?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : avril 2003
    Messages : 6 245
    Points : 8 560
    Points
    8 560
    Par défaut
    As-tu essayé avec -fPIC ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ghc -fPIC -o fac fac.hs
    Si ça ne marche toujours pas, il semblerait que ton GHC ait été compilé incorrectement (ou l'une des dépendances). Mon conseil pour démarrer sans trop de problème est plutôt de s'orienter vers l'outil stack qui est un gestionnaire d'environnement Haskell qui permet d'isoler une version du compilateur et de librairies.
    Stack est généralement très robuste et évite pas mal de problème potentiels, je le recommanderais aux débutants.

    Juste quelques raccourcis à connaître :
    pour un GHCI géré par stack (si vous êtes dans un projet stack, il charge toutes les dépendances nécessaires et vous pouvez directement travailler avec vos modules).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stack ghc -- -o fac fac.hs
    pour utiliser le GHC géré par stack pour compiler.

    Mais dès que tu veux faire quelques chose d'un peu complexe, crée un projet stack.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mars 2017
    Messages : 93
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    En effet (je suis bête), je n'avais pas essayé avec -fPIC car ça marche.
    Je vais me renseigner sur stack.

    Bonne journée

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

Discussions similaires

  1. debutant: erreur LNK2001 avec la librairie GSL
    Par drill3 dans le forum MFC
    Réponses: 6
    Dernier message: 25/04/2005, 13h58
  2. erreurs opengl avec devcpp
    Par Vermin dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/04/2004, 14h50
  3. Erreur EACCESSVIOLATION avec des compsts créés dynamiquement
    Par tsikpemoise dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/02/2004, 19h05
  4. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  5. Erreurs IIS avec Multiples Frames avec xmlrad
    Par powerlog dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/07/2003, 13h15

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