![](/img/trans.png)
[英]Build through Makefile and build script works but with equivalent Makefile.am doesnt.(Gives undefined reference errors)
[英]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.