【问题标题】:undefined reference to `fill_server_address' collect2: ld returned 1 exit status未定义对“fill_server_address”collect2 的引用:ld 返回 1 个退出状态
【发布时间】:2012-02-18 20:56:38
【问题描述】:

你好,我已经做了一个主函数和两个文件一个头文件和一个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 tofill_server_address'collect2:ld返回1 退出状态

虽然我已经定义了函数并包含了它但是为什么我会收到这个错误任何人都可以帮我解决它

谢谢

【问题讨论】:

    标签: c linux


    【解决方案1】:

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

    gcc main.c sev.c
    

    【讨论】:

      猜你喜欢
      • 2012-08-02
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 2011-08-26
      • 2013-06-01
      相关资源
      最近更新 更多