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 :

Erreur à la compilation : ne reconnait pas le C


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    dev
    Inscrit en
    Octobre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2020
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Erreur à la compilation : ne reconnait pas le C
    Bonjour, Bonsoir

    J'ai fait un dualboot Fedora sur mon ordinateur à côté de mon Windows 10 car jusque là, je codais sur Windows 10 mais j'ai appris qu'on pouvait faire plus de choses sur Linux avec le C donc je me suis fait un dualboot en plus de la praticité pour mes cours mais voila : j'ai une grosse erreur à la compilation je ne peux rien faire (j'ai testé sur Windows et ça marche nickel mais la même chose sur Linux ne fonctionne pas). En faisant quelques recherches, je suis tombé sur un truc qui s'appelle cmake. devrais-je l'installer ? Est-ce utile ?

    Voici l'erreur:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    /usr/bin/ld : architecture i386 du fichier d'entrée « %B » est incompatible avec la sortie �  Lp  ��  U
    /usr/bin/ld : architecture i386 du fichier d'entrée « %B » est incompatible avec la sortie �  q  ��  U
    /usr/bin/ld : architecture i386 du fichier d'entrée « %B » est incompatible avec la sortie 0q  ��  U
    /usr/bin/ld : architecture i386 du fichier d'entrée « %B » est incompatible avec la sortie @  ��  U
    /usr/bin/ld : /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/crt1.o : dans la fonction « _start » :
    (.text+0x24) : référence indéfinie vers « main »
    /usr/bin/ld : entiers.o:entiers.c:(.text+0x2c) : référence indéfinie vers « _printf »
    /usr/bin/ld : tests.o:tests.c:(.text+0x204) : référence indéfinie vers « ___chkstk_ms »
    /usr/bin/ld : tests.o:tests.c:(.text+0xa8b) : référence indéfinie vers « ___main »
    /usr/bin/ld : tests.o:tests.c:(.text+0xa97) : référence indéfinie vers « _puts »
    /usr/bin/ld : munit.o:munit.c:(.text+0x22) : référence indéfinie vers « ___mingw_vfprintf »
    /usr/bin/ld : munit.o:munit.c:(.text+0x4b) : référence indéfinie vers « ___mingw_vprintf »
    /usr/bin/ld : munit.o:munit.c:(.text+0x74) : référence indéfinie vers « ___mingw_vfprintf »
    /usr/bin/ld : munit.o:munit.c:(.text+0xe2) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x10a) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x12f) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x154) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1a4) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1f7) : référence indéfinie vers « _fputc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x292) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2ba) : référence indéfinie vers « ___emutls_get_address »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2cd) : référence indéfinie vers « ___emutls_get_address »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2e2) : référence indéfinie vers « _abort »
    /usr/bin/ld : munit.o:munit.c:(.text+0x312) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x331) : référence indéfinie vers « ___emutls_get_address »
    /usr/bin/ld : munit.o:munit.c:(.text+0x344) : référence indéfinie vers « ___emutls_get_address »
    /usr/bin/ld : munit.o:munit.c:(.text+0x359) : référence indéfinie vers « _abort »
    /usr/bin/ld : munit.o:munit.c:(.text+0x365) : référence indéfinie vers « __errno »
    /usr/bin/ld : munit.o:munit.c:(.text+0x36c) : référence indéfinie vers « __errno »
    /usr/bin/ld : munit.o:munit.c:(.text+0x376) : référence indéfinie vers « _strerror »
    /usr/bin/ld : munit.o:munit.c:(.text+0x3cc) : référence indéfinie vers « _calloc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x427) : référence indéfinie vers « _time »
    /usr/bin/ld : munit.o:munit.c:(.text+0x45e) : référence indéfinie vers « _GetCurrentProcess@0 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x482) : référence indéfinie vers « _GetProcessTimes@20 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x4e9) : référence indéfinie vers « ___divdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x513) : référence indéfinie vers « ___moddi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x54e) : référence indéfinie vers « _QueryPerformanceFrequency@4 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x58d) : référence indéfinie vers « _QueryPerformanceCounter@4 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x5a9) : référence indéfinie vers « _QueryPerformanceFrequency@4 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x5cc) : référence indéfinie vers « ___divdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x5f4) : référence indéfinie vers « ___moddi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x63e) : référence indéfinie vers « ___divdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x652) : référence indéfinie vers « ___udivdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x688) : référence indéfinie vers « ___divdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x9f8) : référence indéfinie vers « _memcpy »
    /usr/bin/ld : munit.o:munit.c:(.text+0xc4d) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0xce4) : référence indéfinie vers « _realloc »
    /usr/bin/ld : munit.o:munit.c:(.text+0xd78) : référence indéfinie vers « _strlen »
    /usr/bin/ld : munit.o:munit.c:(.text+0xd93) : référence indéfinie vers « _strlen »
    /usr/bin/ld : munit.o:munit.c:(.text+0xe09) : référence indéfinie vers « _malloc »
    /usr/bin/ld : munit.o:munit.c:(.text+0xe25) : référence indéfinie vers « _memcpy »
    /usr/bin/ld : munit.o:munit.c:(.text+0xe43) : référence indéfinie vers « _memcpy »
    /usr/bin/ld : munit.o:munit.c:(.text+0xe82) : référence indéfinie vers « _free »
    /usr/bin/ld : munit.o:munit.c:(.text+0xeee) : référence indéfinie vers « _read »
    /usr/bin/ld : munit.o:munit.c:(.text+0xf24) : référence indéfinie vers « _write »
    /usr/bin/ld : munit.o:munit.c:(.text+0x11b7) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x11c9) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x11db) : référence indéfinie vers « _fputs »
    /usr/bin/ld : munit.o:munit.c:(.text+0x11f6) : référence indéfinie vers « _dup »
    /usr/bin/ld : munit.o:munit.c:(.text+0x122f) : référence indéfinie vers « _dup2 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x125a) : référence indéfinie vers « _dup2 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1265) : référence indéfinie vers « _close »
    /usr/bin/ld : munit.o:munit.c:(.text+0x12c4) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x12e7) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1303) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1326) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1350) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1378) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x138b) : référence indéfinie vers « _fputc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x139e) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x13a9) : référence indéfinie vers « _fflush »
    /usr/bin/ld : munit.o:munit.c:(.text+0x13b5) : référence indéfinie vers « _tmpfile »
    /usr/bin/ld : munit.o:munit.c:(.text+0x13cb) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1401) : référence indéfinie vers « ___emutls_get_address »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1409) : référence indéfinie vers « __setjmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1433) : référence indéfinie vers « ___emutls_get_address »
    /usr/bin/ld : munit.o:munit.c:(.text+0x146a) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x148d) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x161c) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x163f) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1661) : référence indéfinie vers « ___udivdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x166e) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x167e) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x16a1) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x16c3) : référence indéfinie vers « ___udivdi3 »
    /usr/bin/ld : munit.o:munit.c:(.text+0x16d0) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x16f0) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x170e) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x171e) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1741) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1754) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1764) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1787) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x17cd) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x17f0) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1803) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1813) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1836) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1849) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1859) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x187c) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1897) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x18ba) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x18dc) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x18e7) : référence indéfinie vers « _fflush »
    /usr/bin/ld : munit.o:munit.c:(.text+0x18f2) : référence indéfinie vers « _rewind »
    /usr/bin/ld : munit.o:munit.c:(.text+0x190d) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1918) : référence indéfinie vers « _fflush »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1923) : référence indéfinie vers « _fclose »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1a6f) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1aa8) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1abb) : référence indéfinie vers « _fputc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1aee) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1c84) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1d51) : référence indéfinie vers « _free »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1d5c) : référence indéfinie vers « _free »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1dee) : référence indéfinie vers « _strncmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1e04) : référence indéfinie vers « _strlen »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1e23) : référence indéfinie vers « _strncmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1f7b) : référence indéfinie vers « _puts »
    /usr/bin/ld : munit.o:munit.c:(.text+0x1f87) : référence indéfinie vers « _puts »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2000) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2066) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2078) : référence indéfinie vers « _fputs »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2085) : référence indéfinie vers « _puts »
    /usr/bin/ld : munit.o:munit.c:(.text+0x20b3) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x20d4) : référence indéfinie vers « _puts »
    /usr/bin/ld : munit.o:munit.c:(.text+0x20f8) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x211b) : référence indéfinie vers « _fwrite »
    /usr/bin/ld : munit.o:munit.c:(.text+0x212c) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x213b) : référence indéfinie vers « _fputs »
    /usr/bin/ld : munit.o:munit.c:(.text+0x214d) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2160) : référence indéfinie vers « _putc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x21f8) : référence indéfinie vers « _isatty »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2208) : référence indéfinie vers « _getenv »
    /usr/bin/ld : munit.o:munit.c:(.text+0x22cb) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2314) : référence indéfinie vers « _strncmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2343) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x237e) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x23e4) : référence indéfinie vers « _strtoul »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2434) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x248d) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x24c8) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x252e) : référence indéfinie vers « _strtoul »
    /usr/bin/ld : munit.o:munit.c:(.text+0x258b) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x25e4) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x261f) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2653) : référence indéfinie vers « _realloc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x266a) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x272d) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2768) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x27a7) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x27db) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x280f) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2818) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2868) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x28bb) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2912) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2946) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x297a) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x29ae) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x29d9) : encore plus de références indéfinies suivent vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2a14) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2a53) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2a8a) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2ac1) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2af8) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2b45) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2b84) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2bd5) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2c27) : référence indéfinie vers « _strcmp »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2ca6) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2d17) : référence indéfinie vers « _realloc »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2d2d) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2da8) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2db3) : référence indéfinie vers « _fflush »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2dc7) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2e12) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2ec8) : référence indéfinie vers « __imp___iob »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2ef6) : référence indéfinie vers « _free »
    /usr/bin/ld : munit.o:munit.c:(.text+0x2f01) : référence indéfinie vers « _free »
    collect2: erreur: ld a retourné le statut de sortie 1
    make: *** [Makefile:10: tp02] Error 1
    *On va dire que j'ai quelques bases sur Linux mais j'ai encore quelques difficultés donc essayez d'être simples, svp.
    **En faisant la prévisualisation j'ai vu qu'il y avait des chiffres à la fin des 4 premières lignes sur mon terminal ce sont des ? dans des losange (je tenais à le préciser on sait jamais), j'ai mis des espaces pour que vous puissiez voir les lettres.

  2. #2
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Votre compilateur vous indique qu’il n’y a pas de point d’entrée de programme et une incompatibilité d’architecture soit vous compiler sur une architecture 64bit mais lié avec une bibliothèque 32bits ou inverse/ dans le pire des scénarios pas de #include ou fichier vide (qui sais sans code source/ absence de main ).
    Vérifier toutefois votre fichier et assurer vous que le fichier ne soit pas vide, qu’il comporte bien un point d’entrée de programme (main) et les includes adéquats sans oublier le compilateur qui correspond à votre architecture machine.
    À bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 090
    Points
    43 090
    Par défaut
    Je suis pas spécialiste en C, mais les messages d'erreurs me font penser à un problème d'include. Mais sans le code source ce n'est que de la spéculation, il faut qu'on puisse le voir.

    Si tu veux faire du code compatible Windows et Linux, il te faut utiliser des bibliothèques présentes sur les 2 plateformes (et bien sûr le code devra être compilé sur les 2 plateformes).

    Tu peux regarder du coté de MinGW

    en faisant quelques recherche je suis tombé sur un truc qui s'appelle cmake devrai-je l'installer? Est-ce utile?
    oui ça peut être utile, mais ma seconde phrase reste valide.
    Avec Cmake, tu vas pouvoir générer un Makefile pour chaque plateforme, tu vas avoir un fichier de définition à créer qui va contenir les fichiers sources à utiliser, ainsi que les directives de compilation, pré-requis : savoir comment marche Make (au moins sur le principe)
    Un très bon tutoriel sur CMake
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    C'est 1 problème de libc, la bibliothèque standard du C : le linker ld ne l'a trouve pas

    Il faut savoir si tu compiles avec soit 1 EDI soit en ligne de commande (avec 1 makefile apparement) soit avec 1 portage linux (MinGW)

    • Tester en ligne de commande gcc -Wall main.c pour savoir si cela linke
    • Regarder dans les paquets de ta distribution si la bibliothèque libc est installée
    • Regarder dans les options de ton EDI et en particulier les chemins si tout est correct
    • Utiliser des outils Linux comme ldconfig pour vérifier si la bibliothèque (entête .h et bibliothèque .o/ .so/ .a/ ...) est présente sur le disque dur

  5. #5
    Membre à l'essai
    Homme Profil pro
    dev
    Inscrit en
    Octobre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2020
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Alors déjà merci pour les réponses rapide
    ensuite
    sambia39 : je n'importe que stdio.h avec #include <stdio.h> dans tout mon programme (c'est un programme très simple je suis en train d'apprendre le C) et j'ai revérifier j'ai bien un main

    chrtophe : J'utilisais MinGW justement sur Windows. Je mes les fichiers ici si vous voulez regarder les sources file:///home/ali/Documents/systeme/projet-systeme/m3101-template/tp02.zip

    foetus : j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Wall tests.c entiers.o munit.o rat.o
    et ça m'a mis les mêmes erreurs, j'ai essayé de trouver libc dans /lib avec find mais je n'est rien je sais pas si j'ai mal cherché mais je crois que je ne l'ai pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /lib$ find -iname lib
    ./modules/5.6.6-300.fc32.x86_64/kernel/virt/lib
    ./modules/5.6.6-300.fc32.x86_64/kernel/lib
    ./debug/usr/lib
    ./debug/lib
    ./jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.fc32.x86_64/jre/lib
    /lib$ find -iname libc
    /lib$
    et pour Idconfig tu pourrais me dire comment je l'utilise stp? je n'ai pas trouver d'info dessus j'ai vu quelqu'un qui disait à un autre de regarder la man page mais je n'en ai pas et tu as dit outils donc je crois que c'est pas le bon truc que je regarde.




    EDIT : j'ai trouvé quelques trucs :
    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
    /lib$ ldd --version
    ldd (GNU libc) 2.31
    Copyright © 2020 Free Software Foundation, Inc.
    Ce logiciel est libre; voir les sources pour les conditions de
    reproduction. AUCUNE garantie n'est donnée; tant pour des raisons
    COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.
    Écrits par Roland McGrath et Ulrich Drepper.
     
    /lib$ dnf list glibc
    Dernière vérification de l’expiration des métadonnées effectuée il y a 0:00:37 le jeu. 22 oct. 2020 09:56:25.
    Paquets installés
    glibc.x86_64                                  2.31-2.fc32                                  @anaconda
    Paquets disponibles
    glibc.i686                                    2.31-4.fc32                                  updates  
    glibc.x86_64                                  2.31-4.fc32                                  updates  
    /lib$
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut
    Essayer pour commencer la commande ci-dessous (sans option complémentaire) et ensuite vous pourrez tenter d’utiliser votre makefile et corriger les autres anomalies ou erreurs ( attentions lancer cette commande depuis le répertoire où se trouve l’ensemble des fichiers avec l’extension .c)
    gcc *.c -Wall -o sample_test
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Je parlais de ldconfig pour l'exemple

    C'est la commande ldconfig -p pour lister les dossiers qui peuvent contenir des bibliothèques et ensuite voir dans ces dossiers si la bibliothèque est présente.

    Attention , il y a 1 différence entre le nom "disque dur" et le nom "gcc" : libm.so sur le disque dur, mais gcc -lm ... pour compiler/ linker (<- on supprimer le préfixe lib)

  8. #8
    Membre à l'essai
    Homme Profil pro
    dev
    Inscrit en
    Octobre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2020
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    j'ai essayé gcc *.c -Wall -o sample_test et ça fonctionne je peux lancer mais make ne fonctionne pas j'ai cherché si il y avait des différences de Makefile entre windows et linux mais je n'ai rien trouvé.

    pour ldconfig j'ai testé et il me faudra un peu de temps pour le lire c'est très long x) c'est quoi le nom exact de ce qu'il faut chercher? au moins je pourrai faire ldconfig -p | grep ___
    (j'ai beaucoup de libc)

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    comme l'a dit @sambia39, la raison la + logique c'est que ton gcc compile en 64 bits (glibc.x86_64 est installé) mais que ton make compile en 32 bits (glibc.i686 n'est pas installé)

    Donc voila c'est à toi dans 1 premier temps de :
    • vérifier sur le disque dur, les liens s'il pointent vers les bonnes bibliothèques/ vers les bons dossiers/ ... si tout est bien installé (makefile en 64 bits par exemple)
    • forcer ton makefile à compiler en 64 bits, quitte à mettre en dur les chemins (<- il y a pleins de variables d'environnement)


    Ensuite, tu peux :
    • forcer gcc à compiler en 32 bits (gcc -m32 main.cpp il me semble mais c'est 1 option rapide qui cache 1 ensemble d'options plus complètes - x86 options). Si cela reproduit le problème tu as trouvé le problème.
    • installer les paquets 32 bits



    Le nom de la bibliothèque est libc.so (<- mais en règle générale, libXXX.so est 1 lien vers la bibliothèque libXXX.so.AA avec AA la version de cette dernière)

  10. #10
    Membre à l'essai
    Homme Profil pro
    dev
    Inscrit en
    Octobre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2020
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    ok merci beaucoup à vous je vais essayer tous ça voir si je réussi (ça me prendra quelques temps donc je mes pas résolu)

  11. #11
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 090
    Points
    43 090
    Par défaut
    j'ai cherché si il y avait des différences de Makefile entre windows et linux mais je n'ai rien trouvé.
    Je ne pense pas que tu puisse prendre un Makefile de Windows pour l'utiliser sous Linux.
    regardes le tuto Cmake, il te permet de générer un Makefile adéquat pour Linux ou Windows.

    J'utilisais MinGW justement sur Windows.
    Tu peux l'utiliser aussi sous Linux, mais autant utiliser gcc.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par kenyuki Voir le message
    j'ai cherché si il y avait des différences de Makefile entre windows et linux mais je n'ai rien trouvé.
    Le souci c'est que le Makefile ce n'est pas un programme, ce n'est qu'une description sous forme textuelle de "comment faire Y quand j'ai X". Et cette description est alors analysée par le programme "make" qui, lui, est le vrai moteur de travail.
    Et le "comment faire Y" ce n'est pas "make" qui le fait, mais le programme qui a été mentionné dans la description. Et ce programme, lui, il dépend alors de l'OS.

    Un exemple: pour faire "titi" quand j'ai "toto" je copie "toto" dans "titi".
    Sous Linux, cela s'écrira
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    titi: toto
    	cp toto titi
    Sous Windows, ça s'écrira
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    titi: toto
    	copy toto titi
    C'est donc normal que tu ne trouves pas de différence puisqu'en fait, ces différences ne sont pas liées ni à "make" ni au Makefile, mais aux programmes mis en oeuvre pour créer Y à partir de X. Et quand cette création est issue d'une compilation, sous Linux tu passeras plus naturellement par "gcc" tandis que sous Windows, par d'autres outils utilisables là bas (MinGW, C++Builder, ..., ...)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #13
    Membre à l'essai
    Homme Profil pro
    dev
    Inscrit en
    Octobre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2020
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Résolu
    ok tous est bon en fait quand je fais un programme gcc et make fonctionne niquel donc je suppose que c'est parce que j'ai copié des codes qui viennent d'un autre OS que ça plante. Merci pour votre aide en tous cas je mes résolu.

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

Discussions similaires

  1. Erreur "Fichier source n'a pas pu etre compilé"
    Par gre1307 dans le forum Dev-C++
    Réponses: 1
    Dernier message: 31/01/2008, 20h22
  2. Réponses: 2
    Dernier message: 15/01/2008, 12h14
  3. [syntaxe] erreur de compilation pas comprise
    Par mamelouk dans le forum C++
    Réponses: 20
    Dernier message: 20/08/2007, 11h44
  4. Erreur: "Le projet n'a pas été compilé"
    Par tantto dans le forum Dev-C++
    Réponses: 3
    Dernier message: 07/08/2007, 10h29
  5. Réponses: 16
    Dernier message: 28/09/2006, 18h08

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