2015-12-21 3 views
-4

нормально, все мой файл как этотс ошибкой проекта компиляции

sendmail.h имеет некоторое fucntion объявленное и некоторые константы в этом файле

#define STMP_SERVER "smtp.exmail.qq.com" 
#define LOGIN_NAME "[email protected]" 
#define LOGIN_PASSOWRD "123456" 
#define MAIL_TO "[email protected]" 


char* get_local_addr(char* buf, size_t len); 

int base64_encode(unsigned char *buf, int nLen, char *pOutBuf, int nBufSize); 

void sendemail(char *smtpServer, char *serveruser, char *serverpassword, char *serverip); 

int open_socket(struct sockaddr *addr); 

sendmail.c имеет некоторые функции, как sendmail.h функция

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <sys/types.h> 
#include <sys/socket.h> 
#include <netinet/in.h> 
#include <errno.h> 
#include <unistd.h> 
#include <sys/time.h> 
#include <netdb.h> 
#include <arpa/inet.h> 
#include <fcntl.h> 
#include <stddef.h> 

.............. 

test.c является основной функцией

#include "sendmail.h" 


#define SERVERNAME "root" 
#define SERVERPASSWORD "123456" 


int main() 
{ 
    sendemail(STMP_SERVER, SERVERNAME, SERVERPASSWORD,NULL); 
    return 0; 
} 

но ошибка компиляции и сказать, что это

[[email protected] test]# gcc -o test test.c 
In file included from test.c:1: 
sendmail.h:10: error: expected declaration specifiers or ‘...’ before ‘size_t’ 
sendmail.h:16: warning: ‘struct sockaddr’ declared inside parameter list 
sendmail.h:16: warning: its scope is only this definition or declaration, which is probably not what you want 
test.c: In function ‘main’: 
test.c:10: error: ‘NULL’ undeclared (first use in this function) 
test.c:10: error: (Each undeclared identifier is reported only once 
test.c:10: error: for each function it appears in.) 
+2

a) Использовать надлежащую капитализацию. B) Включить код _important_ и _relevant_. C) Это означает, что вы объявили одну и ту же функцию (одно и то же имя) несколько раз. – Arc676

+0

Как правило, вы не должны включать в себя препроцессор '* .c'. – MikeCAT

ответ

1
  1. Стоп, используя что-то вроде #include "sendmail.c" в a.c
  2. Создать файл с заголовка, который содержит объявления функций в sendmail.c
  3. #include файловой заголовка от a.c
+0

1.i пользователь sedmail.h 2.a.c user #include sendmail.h, но вот этот test.c :(. Text + 0x19): неопределенная ссылка на 'sendemail ' – robert

+0

Ссылка всех необходимых файлов. – MikeCAT

+0

см. Quetion, я его изменяю – robert