我试图运行我的程序,但它一直出错。
我有3个文件,将包含3个不起作用的函数之一的代码。
文件: contacts.h
struct Name{
char firstName[31];
char middleInitial[7];
char lastName[36];
};
struct Contact{
struct Name name;
};
// function prototype:
void getName(struct Name *);
档案: contacts.c
#include <stdio.h>
#include “contacts.h”
void getName(struct Name *name)
{
printf(“Please enter the contact’s first name: “);
scanf(“%30[&\n]”, name->firstName);
}
文件: a1ms4.c
#include <stdio.h>
#include “contacts.h”
int main(void)
{
struct Contact contact = { {0} };
getName(&contect.name);
printf(“Contact first name: %s\n”, contact.name.firstName);
return 0;
}
我知道为什么会收到此错误:
a1ms4.c:(.text+0x53): undefined reference to `getName'
答案 0 :(得分:0)
可能你正在以错误的方式编译它。 试试这个 gcc -c a1ms4.c gcc -c contacts.c gcc -Wall a1ms4.o contacts.o -o contact
答案 1 :(得分:0)
我只是希望
#include “contacts.h”
实际上是
#include "contacts.h"
请注意,”
与"
这个也是如此:
scanf(“%30[&\n]”, name->firstName);
以及这些:
printf(“Please enter the contact’s first name: “);
printf(“Contact first name: %s\n”, contact.name.firstName);
确保您的包含路径中只有一个版本的contacts.h,并且您已包含您想要的确切文件。