在Xcode
中,我的Catalyst
项目的构建失败,错误如下:
ld: in /build-dir/libBackend.a(my-file.cpp.o),
building for Mac Catalyst,
but linking in object file built for macOS,
for architecture x86_64
如何修复上面的问题?
(and这是什么意思)。
注意libBackend.a
是我的静态库,链接到我的App中(my-file.cpp
代表库中的某个文件)。
1条答案
按热度按时间kqlmhetl1#
如果你允许的话,我是这样做的;但首先,日志的意义:
“
building for Mac Catalyst
”部分令人困惑,因为它是在提到libBackend.a
文件之后编写的。消息听起来像“
your library is built for Catalyst but my-file.cpp.o is built for macOS
”。但它实际上意味着:
my-file.cpp.o
对象文件,解决方案:
修复是为了确保正确的标志真正传递给
clang
编译器!!我是说,虽然“
-target x86_64-apple-ios13.6-macabi
“出现在我的旗子里,由于一个错误,target-flag从未到达编译器。
测试:
如果下面的代码导致编译错误(无论是C,C++,Obj-C),那么你有同样的问题。
背景:
我在实现
CMake
support forXcode
on Github它支持
iOS
,Mac的Catalyst
,可能还有tvOS
和watchOS
(因为即使在2021年,
CMake
仍然没有内置支持)。