gpt4 book ai didi

c - 出现错误: Undefined symbols for architecture x86_64:

转载 作者:行者123 更新时间:2023-11-30 19:15:42 28 4
gpt4 key购买 nike

我刚刚开始用 C 语言编程,并决定使用 make 来构建我的示例应用程序。使用 GCC 命令编译文件工作正常,但是使用 make 会失败并出现错误。如果 ma​​ke 只是在后台执行 gcc 命令,我不明白为什么这是可能的。

以下是文件列表:

makefile.make:

app.o: app.c helper.h
gcc -c app.c

helper.o: helper.h helper.c
gcc -c helper.c

app: app.o helper.o
gcc app.o helper.o -o app

应用程序.c

/*
* file: app.c
*/
#include "helper.h"

int main() {
do_something();
return 0;
}

helper.h

/*
* helper.h
*/
void do_something();

helper.c

/*
* file: helper.c
*/
#include <stdio.h>
#include "helper.h"

void do_something() {
printf("Test\n");
printf("Testsss\n");
}

问题:运行“make app”会抛出错误消息

Undefined symbols for architecture x86_64:
"_do_something", referenced from:
_main in app.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [app] Error 1

我尝试过的有效方法:

  • 使用 gcc 手动编译和链接(使用来自make 串行执行)
  • 使用“make app.o”和“make helper.o”,然后运行“gcc app.o helper.o -o app”可以正确编译并链接应用程序

最佳答案

将“makefile.make”重命名为“makefile”或“Makefile”。 “app.o”和“helper.o”似乎可以工作,但我认为这只是执行其默认指令。

关于c - 出现错误: Undefined symbols for architecture x86_64:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32063186/

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