CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Compilation d'un projet C

geohott
geohott
Niveau 7
04 novembre 2018 à 14:29:14

Bonjour les kheys,

Je viens vers vous car j'ai un petit problème de compilation.
Je suis en train de finir un TP de Programmation. L'exercice porte sur la compilation de projet. Nous devions télécharger deux fichiers .c, deux fichiers .h et un fichier .a et les placer dans un même répertoire. Ces fichiers permettent de générer un signal sinusoïdal et de l'afficher dans une fenêtre.

Noms des fichiers : FIRvaleur.c,Vecteur.c,Vecteur.h,gnuplot i.h et libGnuPlot.a

Il est dit de compiler le projet avec la librairie GnuPlot et aussi de faire attention : le code utilise la librairie mathématique libm).

Le chemin pour accéder aux fichiers sources et headers est :

/home/maxmo/Desktop/Programmation/tp6_sans_lib

J'ai essayé de compiler avec la commande suivante :

gcc FIRvaleur.c Vecteur.c -L /home/maxmo/Desktop/Programmation/tp6_sans_lib -lGnuPlot -lm

mais il me sort ceci :

/usr/bin/ld: /home/maxmo/Desktop/Programmation/tp6_sans_lib/libGnuPlot.a(gnuplot_i.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status

Je ne comprends donc pas pourquoi cela ne marche pas.... quelqu'un peut-il m'éclairer ?
Merci d'avance !

Message édité le 04 novembre 2018 à 14:32:43 par geohott
geohott
geohott
Niveau 7
04 novembre 2018 à 14:41:13

Pardon du doublon mais je fais un exemple ; Prenons deux fichiers .c :

- fichiera.c
- fichierb.c

et une librairie : libFichierC.a

Le fichier "fichierb.c" possède des fonctions présentes dans la lib FichierC.a tandis que le "fichiera.c" possède des fonctions dépendantes de la librairie mathématiques.

Comment est-ce que je pourrai compiler ces deux fichiers .c avec les deux librairies en même temps ?

geohott

Message édité le 04 novembre 2018 à 14:41:54 par geohott
AtmelAVR
AtmelAVR
Niveau 4
04 novembre 2018 à 15:58:03

Essaie de passer l'option -no-pie à gcc.

godrik
godrik
Niveau 30
04 novembre 2018 à 17:57:42

Le 04 novembre 2018 à 14:41:13 geohott a écrit :
Pardon du doublon mais je fais un exemple ; Prenons deux fichiers .c :

- fichiera.c
- fichierb.c

et une librairie : libFichierC.a

Le fichier "fichierb.c" possède des fonctions présentes dans la lib FichierC.a tandis que le "fichiera.c" possède des fonctions dépendantes de la librairie mathématiques.

Comment est-ce que je pourrai compiler ces deux fichiers .c avec les deux librairies en même temps ?

Ca depend du compilatuer, mais c'est un deux cas ou il faut inclure la lib deux fois sur la ligne de compilation foo.a foo2.o foo.a

Ouais c'est chelou et des fois c'est utile. Mais certains compilateurs sont assez fute pour regle le probleme tout seul.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment