1. 程式人生 > >解決CMake交叉編譯iOS版本時architecture not supported的錯誤

解決CMake交叉編譯iOS版本時architecture not supported的錯誤

最近在引入一個內部庫,使用CMake編譯成各個平臺的版本,以便於移動平臺使用。

在Windows/Mac/Android平臺都成功編譯後,在iOS版本編譯的時候遇到了形如以下的錯誤:

cdefs.h:761:2: error: Unsupported architecture
_types.h:34:2: error: architecture not supported
_types.h:55:9: error: unknown type name ‘__int64_t’; did you mean ‘__int128_t’?

於是我看了下中間cmake生成的flags.make檔案,果然在C_FLAG/CXX_FLAG中都沒有-arch引數

在CMakeLists.txt或iOS.make中加入

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch armv7 -arch arm64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch armv7 -arch arm64")

編譯就正常了