1

今後の ios プロジェクトで Assimp を使用したいのですが、うまく機能させるのに苦労しています。私はこれからの指示に従いました:

boost-library を使用して iOS (デバイスとシミュレータ) 用の ASSIMP ライブラリをビルドするには?

しかし、ターミナルは私にこれを言い続けます:

rm: CMakeCache.txt: No such file or directory
/Users/hengchinsoon/Desktop/assimp/port/iOS/build_ios.sh: line 40: cmake: command not found
Building armv6 library
make: *** No rule to make target `clean'.  Stop.
make: *** No rule to make target `assimp'.  Stop.
cp: ./lib/libassimp.a: No such file or directory
rm: CMakeCache.txt: No such file or directory
/Users/hengchinsoon/Desktop/assimp/port/iOS/build_ios.sh: line 51: cmake: command not found
Building armv7 library
make: *** No rule to make target `clean'.  Stop.
make: *** No rule to make target `assimp'.  Stop.
cp: ./lib/libassimp.a: No such file or directory
rm: CMakeCache.txt: No such file or directory
/Users/hengchinsoon/Desktop/assimp/port/iOS/build_ios.sh: line 62: cmake: command not found
Building i386 library
make: *** No rule to make target `clean'.  Stop.
make: *** No rule to make target `assimp'.  Stop.
cp: ./lib/libassimp.a: No such file or directory
rm: ./lib/libassimp.a: No such file or directory

そこで、assimpルートフォルダーを確認したところ、libフォルダーがないことがわかりました(githubの説明から、Windowsでの使用用です)。だから私はlibフォルダを作ってもう一度やり直しました。しかし、まだ機能していません。

  1. 私が間違っていた部分を誰か教えてもらえますか? ありがとう!

  2. インストールする必要があるものを正常にインストールした場合、ライブラリを実際に使用するにはどうすればよいでしょうか? lib/ios/ フォルダーを iOS プロジェクトにコピーする必要がありますか?

私がやりたいのは、いくつかの .blend ファイルをインポートして、シェーダーやその他のクールなものを試すことができるようにすることです。

私はまともな ios 開発者であり、OpenGL ES の基本的な理解があります。どういうわけか、Assimp のドキュメントは、それが何をするのかについて私を混乱させました。Assimp のコア コンセプト レベルとプログラミング レベルのどちらを理解していないのか、よくわかりません。しかし、私はそれが非常に柔軟で強力であると確信しています.

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

4

3 に答える 3

4

「buil_ios.sh」スクリプトを使用していると思いますが、そのスクリプトにはいくつかのエラーがあります。

最初に Cmake を以下からダウンロードする必要があります: Cmake Download

Cmake をインストールしてから、以下を実行します。

まず第一に、その出力に加えて、Cmake に設定したいくつかのオプションが使用されていないことを示すメッセージが表示されていると思います。これは、スクリプト内の一部の変数の名前が適切に記述されていないためです。

これに加えて、CMakeLists.txt ファイルを変更して、ライブラリのビルド中にエラーが発生しないようにする必要があります。

ここで必要なパラメータを定義します

set (ASSIMP_SV_REVISION 1023) <-- 1024 未満にする必要があります。

set (ASSIMP_VERSION ${ASSIMP_VERSION_MAJOR}) <-- ここに、このようなパラメーターがいくつかあります。(parameter0).(parameter1)... Mac OS は、この命名法を使用して名前を付けることを好みません: parameter0.parameter1.paramter.2.a 「.」が原因だと思います。

長い一日を経て、ようやくライブラリを構築することができました。別のオプションは、プロジェクト openframeworks からコンパイルされたライブラリを取得することです。パスは次のとおりです: "/addons/ofxAssimpModelLoader/libs/assimp/lib/ios/assimp.a"

ここにライブラリへのリンクがあります

そこでは、arm6 arm7 および i386 アーキテクチャー用に既にコンパイルされたライブラリーを見つけることができます。

ここで修正したスクリプトを公開します。

#!/bin/sh
# build.sh

#######################
# BUILD ASSIMP for iOS and iOS Simulator
#######################

BUILD_DIR="./lib/ios"

IOS_BASE_SDK="5.0"
IOS_DEPLOY_TGT="3.2"

setenv_all()
{
    # Add internal libs
    export CFLAGS="$CFLAGS"
    export CPP="$DEVROOT/usr/bin/llvm-cpp-4.2"
    export CXX="$DEVROOT/usr/bin/llvm-g++-4.2"
    export CXXCPP="$DEVROOT/usr/bin/llvm-cpp-4.2"
    export CC="$DEVROOT/usr/bin/llvm-gcc-4.2"
    export LD=$DEVROOT/usr/bin/ld
    export AR=$DEVROOT/usr/bin/ar
    export AS=$DEVROOT/usr/bin/as
    export NM=$DEVROOT/usr/bin/nm
    export RANLIB=$DEVROOT/usr/bin/ranlib
    export LDFLAGS="-L$SDKROOT/usr/lib/"

    export CPPFLAGS=$CFLAGS
    export CXXFLAGS=$CFLAGS
}

setenv_arm6()
{
    unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS
    export DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
    export SDKROOT=$DEVROOT/SDKs/iPhoneOS$IOS_BASE_SDK.sdk
    export CFLAGS="-arch armv6 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT -I$SDKROOT/usr/include/"
    setenv_all
    rm CMakeCache.txt
    cmake  -G 'Unix Makefiles' -DCMAKE_TOOLCHAIN_FILE=./port/iOS/IPHONEOS_ARM6_TOOLCHAIN.cmake -DENABLE_BOOST_WORKAROUND=ON -DBUILD_STATIC_LIB=ON -DASSIMP_BUILD_STATIC_LIB=ON
}

setenv_arm7()
{
    unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS
    export DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
    export SDKROOT=$DEVROOT/SDKs/iPhoneOS$IOS_BASE_SDK.sdk
    export CFLAGS="-arch armv7 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT -I$SDKROOT/usr/include/"
    setenv_all
    rm CMakeCache.txt
    cmake  -G 'Unix Makefiles' -DCMAKE_TOOLCHAIN_FILE=./port/iOS/IPHONEOS_ARM7_TOOLCHAIN.cmake -DENABLE_BOOST_WORKAROUND=ON -DBUILD_STATIC_LIB=ON -DASSIMP_BUILD_STATIC_LIB=ON
}

setenv_i386()
{
    unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS
    export DEVROOT=/Developer/Platforms/iPhoneSimulator.platform/Developer
    export SDKROOT=$DEVROOT/SDKs/iPhoneSimulator$IOS_BASE_SDK.sdk
    export CFLAGS="-arch i386 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT"
    setenv_all
    rm CMakeCache.txt
    cmake  -G 'Unix Makefiles' -DCMAKE_TOOLCHAIN_FILE=./port/iOS/IPHONEOS_i386_TOOLCHAIN.cmake -DENABLE_BOOST_WORKAROUND=ON -DBUILD_STATIC_LIB=ON -DASSIMP_BUILD_STATIC_LIB=ON
}

create_outdir()
{
    for lib_i386 in `find $BUILD_DIR/i386 -name "lib*\.a"`; do
        lib_arm6=`echo $lib_i386 | sed "s/i386/arm6/g"`
        lib_arm7=`echo $lib_i386 | sed "s/i386/arm7/g"`
        lib=`echo $lib_i386 | sed "s/i386\///g"`
        echo 'Creating fat binary...'
        lipo -arch armv6 $lib_arm6 -arch armv7 $lib_arm7 -arch i386 $lib_i386 -create -output $lib
    done
    echo 'Done! You will find the libaries and fat binary library in /lib/ios'
}
cd ../../

rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR/arm6 $BUILD_DIR/arm7 $BUILD_DIR/i386

setenv_arm6
echo 'Building armv6 library'
make clean
make assimp -j 8 -l
cp ./lib/libassimp.a $BUILD_DIR/arm6/

setenv_arm7
echo 'Building armv7 library'
make clean
make assimp -j 8 -l
cp ./lib/libassimp.a $BUILD_DIR/arm7/


setenv_i386
echo 'Building i386 library'
make clean
make assimp -j 8 -l
cp ./lib/libassimp.a $BUILD_DIR/i386/

rm ./lib/libassimp.a

create_outdir
于 2012-12-10T09:32:43.480 に答える
1

assimp libがすでに組み込まれているため、これに代わる方法はopenframeworksを使用することであるとどこかで読みました。

http://www.openframeworks.cc/download/

iOSバージョンを探します。内部には example/ios/assimpExample/ フォルダーを含むフォルダーがあり、出発点として適しています。

それでは、お楽しみください :D

于 2013-03-26T11:07:26.107 に答える
0

Homebrew の最新バージョンを搭載した Mac でのブースト ルートは次のとおりです。

BOOST_ROOT=~/.homebrew/Cellar/boost/1.53.0

ブーストのバージョンが異なる場合があるため、最後のフォルダーは異なります。しかし、最近の自作バージョンでは、Cellar は現在のユーザーのホーム ディレクトリにインストールされます。

于 2013-04-25T14:10:19.263 に答える