5

Cmakeを使ってASSIMPのXcodeプロジェクトを生成しようとしています。ワークスペース フォルダーに既に 1 つあることはわかっています。そして、私は自分自身を生成しようとしています。私は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」を静的に変更するには? -DBUILD_SHARED_LIBS=OFF を設定しましたが、機能しませんでした。

Web を検索しましたが、問題の原因がわかりません。

助けてくれてありがとう!

4

1 に答える 1

11

/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)
于 2012-05-23T04:14:06.357 に答える