簡體   English   中英

Linux Makefile.am錯誤“未定義引用”

[英]Linux Makefile.am error “undefined reference to”

當我嘗試編譯我的程序時,我有這個錯誤

undefined reference to `printfHello'

我創建了一個簡單的程序,包含三個文件hello.c,hello1.c和hello.h

hello1.c:

#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h> 
void printfHello() {
    printf("Hello");
}

hello1.h

void printfHello();

你好ç

#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>   
#include "hello1.h"   

int main() {
    int errn=0;
    printfHello();
    return errn;
}

我有一個Makefile.am

bin_PROGRAMS = client_ev

AM_CPPFLAGS = \
    -I$(top_srcdir)/include \
    -I$(top_builddir)/include
#   $(some_CFLAGS)

EXTRA_DIST = \
    autogen.sh

MAINTAINERCLEANFILES = \
    configure \
    aclocal.m4 \
    Makefile.in

client_ev_SOURCES = hello.c hello1.c

如果我這樣做---> cc hello.c -o hello.c hello1.c。 它工作正常。

我需要在makefile.am文件中定義其他內容嗎?

謝謝。

您尚未在任何文件中定義函數printfHello()。 請先首先定義該功能

void printfHello()
{
 printf("Hello\n");
}

在文件hello1.c中,將PrintHola函數更改為printHello。 編譯器會產生錯誤,因為它在有原型時無法找到printHello的主體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM