d'abord, je tiens à dire que je parle très peu anglais, alors excusez mes fautes d'orthographe.échouer y compris les bibliothèques en C
J'ai un problème de compilation des bibliothèques en C en utilisant le code: blocs comme IDE
Je le code suivant:
//main.c
#include "lib1.h"
int main(){
}
Et le "lib1.h" est
#ifndef GUARD_LIB1
#define GUARD_LIB1
MyTypedef variable123;
#endif
le "lib1.c" est
#include "lib2.h"
#include "lib1.h"
enfin, "lib2.h" est
#ifndef GUARD_LIB2
#define GUARD_LIB2
typedef int MyTypedef;
#endif
Mais me donne toujours l'erreur de compilation, ne reconnaît pas MyTypedef dans "lib1.h", des suggestions?
L'erreur est:
"Unknow type name: 'MyTypedef'"
EIDT:
Le code réel que j'ai le problème.
// EnzoLib.c
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include "EnzoLib.h"
// EnzoLib.h
//blah blah blah...
//Estructuras
typedef struct {
SOCKET sock;
char nombre[64];
char activo;
struct sockaddr_in from;
} Socket;
//blah blah blah...
et main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <process.h>
#include "EnzoLib.h"
et l'erreur:
C:\Users\Enzo\Documents\codeblocks\lp1\ServidorChat\EnzoLib.h|6|error: unknown type name 'SOCKET'|
dois-je ajouter #include avant #include "EnzoLib.h" dans main.c? Je ne l'aide des fonctions que je déclarai dans EnzoLib.h
EDIT2:
Est-ce que je suis en train de programmer une belle façon. Ne pas mettre le "#includes" toujours sur ".C fichiers"?
Le compilateur ne peut pas déclarer une variable de type 'MyTypedef' sans voir d'abord la définition de ce type. Mettez le 'typedef' dans le fichier d'en-tête aussi. –
'typedef struct int MyTypedef;'? Essayer de définir un type appelé 'struct int' est susceptible d'être une entreprise courageuse mais de courte durée. –