簡體   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