加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Cmake为IOS生成静态库的xcode项目?

发布时间:2020-12-14 18:05:56 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Cmake生成ASSIMP的 Xcode项目.我知道它的工作区文件夹中已有一个.而我只想自己创造.我试着写cmakelist.txt: cmake_minimum_required(VERSION 2.8)project(assimp)set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos;-iphonesimulator")set(CMAK
我正在尝试使用Cmake生成ASSIMP的 Xcode项目.我知道它的工作区文件夹中已有一个.而我只想自己创造.我试着写cmakelist.txt:

cmake_minimum_required(VERSION 2.8)

project(assimp)

set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos;-iphonesimulator")
set(CMAKE_OSX_SYSROOT iphoneos5.1)
set(CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD_32_BIT))

add_subdirectory(assimp)

然后我跑了这个命令:

#!/bin/bash
cd "$(dirname "$0")"/assimp
if [ ! -d xcode ]
then
    mkdir xcode
fi
cd xcode
cmake -G Xcode ../.. -DINSTALL_LIBS=ON -DCMAKE_INSTALL_PREFIX=../.. -DBUILD_SHARED_LIBS=OFF -DBUILD_ASSIMP_TOOLS:BOOL=OFF -DENABLE_BOOST_WORKAROUND=ON

# Device or simulator
xcodebuild -target install -configuration Release

它生成了Xcode项目,但在产品中是libassimp.dylib,得到了“目标指定产品类型’com.apple.product-type.library.dynamic’,但是’iphoneos’平台没有这样的产品类型”错误.

如何将’com.apple.product-type.library.dynamic’更改为static?我设置了-DBUILD_SHARED_LIBS = OFF但它没有用.

我在网上搜索,找不到导致问题的原因.

非常感谢您的帮助!

解决方法

在/ code /目录下的cmakelist.txt中有一行:ADD_LIBRARY(assimp SHARED只是将SHARED更改为STATIC

我正在使用的cmakelist:

cmake_minimum_required(VERSION 2.8.6)

project(assimp)

# Set the Base SDK (only change the SDKVER value,if for instance,you are building for iOS 5.0):
set(SDKVER "5.1")
set(DEVROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer")
set(SDKROOT "${DEVROOT}/SDKs/iPhoneOS${SDKVER}.sdk")
if(EXISTS ${SDKROOT})
    set(CMAKE_OSX_SYSROOT "${SDKROOT}")
else()
    message("Warning,iOS Base SDK path not found: " ${SDKROOT})
endif()

# Will resolve to "Standard (armv6 armv7)" on Xcode 4.0.2 and to "Standard (armv7)" on Xcode 4.2:
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)")

# seamless toggle between device and simulator
set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos;-iphonesimulator")

include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
)

add_subdirectory(assimp)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读