Tal*_*ion 13 c++ arm compilation cmake ios
我使用CMake作为构建工具编译了一个C++静态库,我想将它链接到我的iOS应用程序.
我在Xcode中创建了一个简单的"Empty"应用程序,并将我的库libengine.a链接到它.
我试图编译我的iOS项目,链接器给了我这个警告:
ignoring file /Users/.../build/engine/libengine.a,
file was built for archive which is not the architecture being linked (i386):
/Users/.../build/engine/libengine.a
Run Code Online (Sandbox Code Playgroud)
据我所知,我需要为ARM处理器编译我的库.问题是我不知道怎么做.
我认为CMake真的缺乏很好的教程.
无论如何,我的CMake脚本附在下面.
任何帮助将不胜感激.
谢谢,塔尔.
这是我的主要CMake脚本:
cmake_minimum_required(VERSION 2.8)
project(movie-night)
if (DEFINED PLATFORM)
include(toolchains/ios.cmake)
endif()
add_definitions(-Wall)
set(DEBUG)
if (DEFINED DEBUG)
add_definitions(-g)
endif()
if (DEFINED RELEASE)
add_definitions(-O3)
endif()
add_subdirectory(engine)
add_subdirectory(ui)
add_subdirectory(test)
Run Code Online (Sandbox Code Playgroud)
这是我的toolchains/ios.cmake文件:
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_SYSTEM_PROCESSOR arm)
Run Code Online (Sandbox Code Playgroud)
dre*_*zor 12
只需使用此工具链文件:http://code.google.com/p/ios-cmake/并将其用作
cmake -DCMAKE_TOOLCHAIN_FILE=path_to_your_toolchain_file
Run Code Online (Sandbox Code Playgroud)
然后,在CMakeLists.txt:
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch armv7")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch armv7")
Run Code Online (Sandbox Code Playgroud)
Vla*_*lad 10
通过遵循cmake-toolchains文档,我喜欢以下内容:
cmake -G Xcode -B build \
-DCMAKE_SYSTEM_NAME=iOS \
-DCMAKE_Swift_COMPILER_FORCED=true \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0
Run Code Online (Sandbox Code Playgroud)
注意:CMAKE_OSX_DEPLOYMENT_TARGET=11.0当针对 iOS 时,该分配不是错误的。
| 归档时间: |
|
| 查看次数: |
19888 次 |
| 最近记录: |