当我尝试编译我的程序时,我有这个错误
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();
的hello.c
#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
如果我这样做---&gt; cc hello.c -o hello.c hello1.c。它工作正常。
我需要在makefile.am文件中定义其他内容吗?
感谢。
答案 0 :(得分:1)
您尚未在任何文件中定义printfHello()函数。请先首先定义该功能
void printfHello()
{
printf("Hello\n");
}
答案 1 :(得分:0)
在文件hello1.c中,将PrintHola函数更改为printHello。编译器会产生错误,因为它在有原型时无法找到printHello的主体。