gpt4 book ai didi

c - 对函数 C 的 undefined reference

转载 作者:行者123 更新时间:2023-11-30 15:52:15 25 4
gpt4 key购买 nike

我从 here 下载了一个库。我在程序中添加了头文件,但是当我尝试访问该头文件的函数时,出现错误:

对 u_open() 和 u_accept() 函数的 undefined reference 。我尝试编译此头文件的 .c 文件,但收到此错误:

对 main 的 undefined reference

我尝试了我所知道的一切来解决这个问题,但无法解决。这是程序。

#include "uici.h"
int main()
{
char client[50];
char buf[1024];

u_port_t portnumber;
portnumber=48625;

int fd = u_open(portnumber);

int communFd = u_accept(fd,client,50);

perror("Opened");

fprintf(stderr,"\nComun fd is %d\n\n\n",communFd);

read(communFd,buf,1024);

write(STDOUT_FILENO,buf,1024);

fprintf(stderr,"\n\nReading complete\n");
return 0;
}

我该如何解决这个问题?

问候

最佳答案

您的头文件 uici.h 声明您在 main() 中调用的函数(u_open()u_accept ()),但不是它们的实现,它们位于源文件中。当链接器尝试创建整个程序时,它会提示找不到实现。

解决方案是在创建实际的程序二进制文件时将所有文件链接在一起。使用 g++ 前端时,您可以通过在命令行上一起指定所有源文件来完成此操作。例如:

g++ -o main main.c uici.c

将创建名为“main”的主程序,假设您需要的实现位于 uici.c 中。

编辑:如果您要链接到 uici 的预构建库,则需要向前端指定链接需要该库,例如与:

g++ -o main main.c -luici

关于c - 对函数 C 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com