gpt4 book ai didi

macos - 在 OSX 上预编译头和编译通用对象

转载 作者:行者123 更新时间:2023-12-04 08:18:42 25 4
gpt4 key购买 nike

我们正在为我们的项目使用带有 GCC 的预编译头文件,并像这样构建它们:

gcc $(CFLAGS) precompiledcommonlib.h

现在我正在 OSX 10.6 上构建项目,并尝试同时为所有架构使用构建的漂亮功能,如下所示:
gcc $(CFLAGS) -c -arch i386 -arch x86_64 commonlib.c  

但是,这似乎不适用于预编译头:
gcc $(CFLAGS) -arch i386 -arch x86_64 precompiledcommonlib.h
Undefined symbols for architecture i386:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/z1/z1A0sPkqGDyPrZWo9ysVK++++TI/-Tmp-//cc3W2gwd.out (No such file or directory)

编辑:
正如 Mark 根据 XCode 指出的那样,必须为每个体系结构单独构建预编译头,所以我的问题是,在构建通用对象时,是否有任何方法让 gcc 使用正确的预编译头。

我确实意识到我可以像 XCode 那样构建完全独立的每个架构,但我更愿意利用同时构建它们的可能性,而不必弄乱不同的构建配置。

最佳答案

你的问题不在于架构。两者都失败

问题是您正在尝试构建没有主函数的可执行文件。

由于文件名是 commonlib.c,我怀疑您想构建一个库,如果这样的话,在 XCode 中使用库模板启动项目。

关于macos - 在 OSX 上预编译头和编译通用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757509/

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