首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Cmake生成IOS静态库的xcode工程?

如何使用Cmake生成IOS静态库的xcode工程?
EN

Stack Overflow用户
提问于 2012-05-10 17:10:44
回答 1查看 8.4K关注 0票数 5

我正在尝试使用Cmake生成ASSIMP的Xcode项目。我知道它的workspace文件夹中已经有一个。我只是试着生成我自己。我试着写cmakelist.txt:

代码语言:javascript
复制
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)

然后我运行了这个命令:

代码语言:javascript
复制
#!/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项目,但在products中是libassimp.dylib,并得到“目标指定产品类型'com.apple.product-type.library.dynamic',但'iphoneos‘平台没有这样的产品类型”错误。

如何将“com.apple.product-type.library.dynamic”改为静态?我设置了-DBUILD_SHARED_LIBS=OFF,但它不起作用。

我在网上搜索,找不到是什么导致了这个问题。

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 12:14:06

在代码中的/ cmakelist.txt /目录中有一行: ADD_LIBRARY(只需将共享更改为静态即可

我使用的cmakelist:

代码语言:javascript
复制
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)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10530849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档