gpt4 book ai didi

c - ld : file was built for unsupported file format on Mac OS X

转载 作者:太空狗 更新时间:2023-10-29 14:55:54 25 4
gpt4 key购买 nike

我必须使用在另一台 x64_86 计算机上编译的共享对象构建一个项目。我有这个错误:

cc -std=c11 -Wall -Werror -Wextra -pedantic -I./include src/server.c
obj/tftp.o -o bin/server -L./lib64 -lSocketUDP -lAdresseInternet -lpthread
ld: warning: ld: warning: ignoring file ./lib64/libSocketUDP.so, file was
built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture
being linked (x86_64): ./lib64/libSocketUDP.soignoring file
./lib64/libAdresseInternet.so, file was built for unsupported file format (
0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 ) which is not the architecture being linked (x86_64):
./lib64/libAdresseInternet.so

我的 Mac 的体系结构是 x86_64,共享对象是在 x86_64 上编译的。编译在我的 Linux 计算机上运行。

这是我的 Makefile:

CFLAGS = -std=c11 -Wall -Werror -Wextra -pedantic -I./include
LDLIBS = -L./lib64
LDFLAGS = -lSocketUDP -lAdresseInternet -lpthread

all: obj/tftp.o bin/server bin/client

obj/tftp.o: src/tftp.c
mkdir -p obj
$(CC) $(CFLAGS) -c $^ -o $@

bin/server: src/server.c obj/tftp.o
mkdir -p bin
$(CC) $(CFLAGS) $^ -o $@ $(LDLIBS) $(LDFLAGS)

bin/client: src/client.c obj/tftp.o
mkdir -p bin
$(CC) $(CFLAGS) $^ -o $@ $(LDLIBS) $(LDFLAGS)

clean:
$(RM) -r obj

distclean:
$(RM) -r obj bin

谢谢。

最佳答案

您不能这样做,因为这台“其他 x86_64 计算机”显然正在运行 Linux 并生成 ELF-format目标文件。

0x7F 0x45 0x4C 0x46
0x7F 'E' 'L' 'F'

OSX/iOS 使用 Mach-O format目标文件,不能链接到不同类型的目标文件。

您需要在 OSX 下编译所有代码。

关于c - ld : file was built for unsupported file format on Mac OS X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36694088/

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