未定义引用`fill_server_address'colle2:ld返回1退出状态

时间:2012-01-25 16:59:18

标签: c linux

你好,我有一个主要功能,两个文件一个标题和一个c文件

的main.c

#include "sev.h"

int main(int argc, char *argv[])
{
     int sockfd, newsockfd, port_no = 1234, index=0;
     struct sockaddr_in serv_addr, cli_addr;

    fill_server_address(&serv_addr, port_no);

}

sev.c

#include "sev.h"

    void 
    fill_server_address(struct sockaddr_in *serv_addr, int port_no)
    {
        serv_addr->sin_family = AF_INET;
        serv_addr->sin_port = htons(port-no);
        serv_addr->sin_addr.s_addr = INADDR_ANY;

    }

sev.h

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

void fill_server_address(struct sockaddr_in *serv_addr, int port_no);

但主要是我仍然收到错误

  

/tmp/cca5VCjZ.o:在函数main': server-main.c:(.text+0x106): undefined reference to中fill_server_address'colle2:ld返回1   退出状态

虽然我已定义了该功能并将其包含但仍然为什么我会收到此错误任何人都可以帮我修复它

感谢

1 个答案:

答案 0 :(得分:2)

包括标题是不够的。您还需要编译sev.c并将其链接到可执行文件:

gcc main.c sev.c