ios - 初学者在iOS中使用assimp

标签 ios opengl-es

我想在即将到来的ios项目中使用Assimp,但很难使它正常工作。我遵循了以下指示:

How to build ASSIMP Library for iOS (Device and Simulator) with boost-library?

但是终端不断告诉我:

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文件夹,然后重试。但仍然无法正常工作。
  • 谁能和我分享我做错了哪些部分?谢谢!
  • 说如果我成功安装了需要安装的所有内容,那么如何真正使用该库?
    我应该将lib / ios /文件夹复制到ios项目中吗?

  • 我想做的是导入一些.blend文件,然后我可以对着色器和其他很棒的东西进行实验。

    我是一位不错的ios开发人员,并且对OpenGL ES有基本的了解。不知何故,Assimp文档使我对其功能感到困惑。我不确定在核心概念级别还是在编程级别不了解Assimp。但是我仍然坚信它非常灵活和强大。

    感谢您的帮助。

    最佳答案

    我猜您正在使用“buil_ios.sh”脚本,在该脚本中有一些错误。

    您应该先从Cmake Download下载Cmake。

    安装Cmake,然后执行以下操作。

    首先,我认为除了输出之外,您还会收到一些消息,告诉您在Cmake中放置的某些选项未被使用。那是因为在脚本中某些变量的名称写得不好。

    除此之外,您还应该更改CMakeLists.txt文件,以便在尝试构建库时不会出现错误:

    在此定义所需的参数

    设置(ASSIMP_SV_REVISION 1023)<-应该小于1024。

    设置(ASSIMP_VERSION $ {ASSIMP_VERSION_MAJOR})<-在这里,您会找到一些类似的参数。 (参数0)。(参数1)...
    Mac OS不喜欢使用以下命名法来放置名称:parameter0.parameter1.paramter.2.a我想这是因为'。'。

    因此,经过漫长的一天,我终于设法建立了图书馆。另一个选择是从项目openframeworks编译库,其路径为:“/ addons / ofxAssimpModelLoader / libs / assimp / lib / ios / assimp.a”

    Here you have a link to the library

    在这里,您可以找到已经为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
    

    关于ios - 初学者在iOS中使用assimp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170139/

    相关文章:

    ios - 你能强制ios启动safari而不是任何其他浏览器,甚至给出一个选项吗?

    c++ - Intel/AMD C++ 上的 OpenGL 3+ 失败

    opengl-es - GLSL OpenGL ES 2.0 (iOS) 中有噪声函数吗?

    ios - 如何自定义 UISlider 以使 stepps 可见

    ios - Ansible regex_findall 多个字符串

    ios - 如何修复快速链接器错误 "framework not found GTMSessionFetcher clang"

    android - 在 Activity.onLoadResources() 中检查 GL_MAX_TEXTURE_SIZE

    ios - 不同大小的 ScrollView 页面

    ios - 在 iOS 中替换图像的特定颜色

    android - 在android opengl es中检测面向相机的立方体的一侧