gpt4 book ai didi

C 回文程序 - 对 main 的 undefined reference

转载 作者:行者123 更新时间:2023-11-30 18:28:22 25 4
gpt4 key购买 nike

我编写了一个函数,它检查 char 字符串是否是回文。

//pan.c

#include <stdbool.h>
#include "funs.h"
#include <stdio.h>
#include <string.h>

bool palindrom(char napis[])
{
int begin, middle, end, length = 0;

while(napis[length] != '\0')
length++;

end = length - 1;
middle = length;

for (begin = 0; begin < middle; begin++)
{
if(napis[begin] != napis[end])
{
return false;
break;
}
end--;
}
if(begin == middle)
return true;
}

我还创建了 funs.h

//funs.h
#include <stdbool.h>
bool palindrom();

现在,我尝试在我的主函数中使用这个函数

#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include "funs.h"


int main()
{
char text[100];
bool result;

printf("Enter an char: ");
scanf("%s", text);
result = palindrom(text);
if(result)
{
printf("Brawo!\n");
}
else
{
printf("Gówno!\n");
}
return 0;
}

我还创建了 makefile:

# Makefile

all: main

main: main.o pan.o
clang -o main main.o pan.o

main.o: main.c
clang -c main.c

pan.o: pan.c
clang -c pan.c

clean:
rm -f main *.o *~

一切看起来都很好并且可以在单个文件中工作,但是当我尝试单独编译它们时,它们“看不到”彼此。 Makefile 似乎也运行得很糟糕,但我看不到任何错误。你能帮我解决这个问题吗?

最佳答案

When I try "make" command it returns "makefile:15: *** missing separator. Stop." comment and do nothing.

你真的看过你的 makefile 的第 15 行吗?请注意,它与边距齐平,而不是通过制表符缩进。

When I'm compiling pan.c with "clang pan.c -Wall --pedantic -std=c11 -o pan" command: 1 warning generated. /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../x86_64-l‌​inux-gnu/crt1.o: In function _start': (.text+0x20): undefined reference to main'

确实,您的 pan.c 没有 main() 函数。所以不要尝试自己编译它。怎么样

clang main.c pan.c -Wall --pedantic -std=c11 -o pan

关于C 回文程序 - 对 main 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47694733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com