在 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
我该如何解决上述问题?
(甚至意味着什么)。
注意,libBackend.a
是链接到我的应用程序的静态库(而 my-file.cpp
代表该库中的某个文件)。
答案 0 :(得分:0)
如果您允许,这就是我修复它的方法;但首先,日志的含义:
“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
-compiler !!
我的意思是,虽然“-target x86_64-apple-ios13.6-macabi
”在我的旗帜中,
由于错误,目标标志从未到达编译器。
如果下面导致编译错误(无论是 C、C++、Obj-C),那么你有同样的问题。
#ifdef __APPLE__
# include <TargetConditionals.h>
# if !TARGET_OS_MACCATALYST
# error "Unsupported platform!"
# endif
#endif
我正在实施CMake
support for Xcode
on Github,
它支持 iOS
、Mac 的 Catalyst
以及可能 tvOS
和 watchOS
(因为即使在 2021 年,CMake
仍然没有内置支持)。