繁体   English   中英

编译错误,未定义对Test()的引用,多文件C程序

[英]Compilation error, undefined reference to Test(), multi file C program

尝试编译 a.c 程序来启动服务器给我一个未定义的 function 的错误,我在另一个上有。

我正在做一个 C# 客户端的项目,该客户端与带有 C 脚本的服务器连接。 我使用 zinjai 作为我的 IDE 并且我正在尝试将项目实现并拆分为 2 个主要文件,一个由服务器脚本组成,另一个由数据库 C 脚本组成。 我已经创建了 ah 文件来链接它们,但我无法让它工作。

这只是项目的一部分,只是为了测试它是否有效,我返回 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

这是 main.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() 的引用

collect2:错误:ID 返回 1 退出状态

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM