gpt4 book ai didi

编译错误,对 Test() 的 undefined reference ,多文件 C 程序

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:57 25 4
gpt4 key购买 nike

尝试编译一个 .c 程序来启动一个服务器给我一个错误,我在另一个 .c 程序上有一个未定义的函数(即使我有一个 .h 链接它们)。

我正在做一个 C# 客户端项目,该客户端通过 C 脚本连接到服务器。我正在使用 zinjai 作为我的 IDE,我试图在 2 个主要文件中实现和拆分项目,一个由服务器脚本组成,另一个由数据库 C 脚本组成。我已经创建了一个 .h 文件以链接它们,但我没能成功。

这只是项目的一部分,只是为了测试它是否有效,我返回 0 是因为我想打印它以查看它是否有效。这是 a.c 的一部分:

//include base de datos y mysql
#include <mysql.h>
#include "basedatos.h"

int Test(){
return 0;
}

这是 .h 文件:

#ifndef BASEDATOS_H
#define BASEDATOS_H

int Test();

#endif

这是主要的 .c 文件,比方说 b.c:

#include <mysql.h>
#include "basedatos.h"
//obviously there's some code here:

for( ; ; ){

printf ("Escuchando\n");
printf ("%d", Test());

sock_conn = accept(sock_listen, NULL, NULL);

我期待看到程序编译并打印一个“0”,但是当我尝试编译它时,出现了这个错误:

对 Test() 的 undefined reference

collect2:错误:Id 返回了 1 个退出状态

我再说一遍,我正在使用带有此编译选项的 zinjai:-std=c99 mysql_config --cflags --libs -lm

最佳答案

我不熟悉 Zinjai,但对于大多数 IDE,您需要创建一个项目才能将多个源文件编译并链接到您的可执行文件中。

关于编译错误,对 Test() 的 undefined reference ,多文件 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58508296/

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