在Makefile中将目标文件链接到C文件时出现问题

wi3ka0sx  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(146)

我得到了一个目标文件set.o*和头文件set.h。我需要对我创建的文件main.c中的函数进行测试。

all: main

main: main.c set.h set.o
    clang -Wall -g main.c set.o -o main

clean:
    rm main

这个Makefile一直给我错误:

ld: warning: ignoring file set.o, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
Undefined symbols for architecture x86_64:
  "_validateMemUse", referenced from:
      _main in main-f6a155.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: *** [main] Error 1

如果有人知道我哪里错了,回复我将非常感激:)

pes8fvy9

pes8fvy91#

这个错误是相当清楚的,在这里由我把重要的陈述减到重点:
ld:警告:忽略文件set.o,正在为macOS-x86_64构建,但尝试链接为未知-不支持的文件格式构建的文件
显然,文件“set.o”是为另一个目标系统编译的,或者不是一个目标文件。在任何情况下,链接器都无法识别它,因此无法将您的“main. c”链接到它。
回到给你这个文件的人那里,要求为你的Mac提供一个对象文件,或者更好的是源文件。

  • 注意:您的Makefile没有问题。*

相关问题