首先我想說我的英語說得很少,所以請原諒我的拼寫錯誤。失敗,包括C庫中的庫文件
我在使用代碼編譯一些庫在C問題:塊作爲IDE
我有以下代碼:
//main.c
#include "lib1.h"
int main(){
}
與 「lib1.h」 是
#ifndef GUARD_LIB1
#define GUARD_LIB1
MyTypedef variable123;
#endif
「lib1.c」是
#include "lib2.h"
#include "lib1.h"
最後, 「lib2.h」 是
#ifndef GUARD_LIB2
#define GUARD_LIB2
typedef int MyTypedef;
#endif
但總是給我編譯錯誤,在 「lib1.h」 不承認MyTypedef,有什麼建議?
的錯誤是:
"Unknow type name: 'MyTypedef'"
EIDT:
真正的代碼,我有問題。
// 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...
和main.c中
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <process.h>
#include "EnzoLib.h"
和錯誤:
C:\Users\Enzo\Documents\codeblocks\lp1\ServidorChat\EnzoLib.h|6|error: unknown type name 'SOCKET'|
,我應該main.c中的#include 「EnzoLib.h」 之前添加#?我只能用我在EnzoLib.h
聲明功能EDIT2:
是,我想一個整潔的方式進行編程。不要把「#includes」放在「.C文件」上?
編譯器無法首先看到該類型的定義而無法聲明「MyTypedef」類型的變量。把'typedef'放在頭文件中。 –
'typedef struct int MyTypedef;'?試圖定義一個名爲'struct int'的類型可能是一種勇敢但短暫的努力。 –