首页 文章

使用CMake在XCode 6.4 for iOS中构建OpenSceneGraph 3.4.0

提问于
浏览
1

我是OSG和CMake的新手,我正在尝试按照README文件中的指定构建iOS的OpenSceneGraph . 以下是平台和工具规范 . MAC OSX 10.10.4 XCode 6.4 iOS 8.4 iOS模拟器8.4 OpenSceneGraph 3.4.0-rc9 CMake 3.3.0

重现错误的步骤:1:在OPG的OSG文件夹中修改并保存CMakeLists.txt(OSG_BUILD_PLATFORM_IPHONE“启用IPhoneSDK设备支持”ON)OPTION(OSG_BUILD_PLATFORM_IPHONE_SIMULATOR“启用IPhoneSDK模拟器支持”OFF)

2:在CMake GUI更新中“源代码在哪里:”和“在哪里构建二进制文件:”到OSG文件夹 . 设置以下选项 .

  • OSG_BUILD_PLATFORM_IPHONE:BOOL = ON \

  • CMAKE_CXX_FLAGS:STRING = "-ftree-vectorize -fvisibility-inlines-hidden -mno-thumb -arch armv6 -pipe -no-cpp-precomp -miphoneos-version-min=3.1 -mno-thumb" \

  • BUILD_OSG_APPLICATIONS:BOOL = OFF \

  • OSG_BUILD_FRAMEWORKS:BOOL = OFF \

  • OSG_WINDOWING_SYSTEM:STRING = IOS \

  • CMAKE_OSX_ARCHITECTURES:STRING = "armv6;armv7" \

  • CMAKE_OSX_SYSROOT:STRING = / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS8.4.sdk \

  • OSG_GL1_AVAILABLE:BOOL = OFF \

  • OSG_GL2_AVAILABLE:BOOL = OFF \

  • OSG_GLES1_AVAILABLE:BOOL = ON \

  • OSG_GL_DISPLAYLISTS_AVAILABLE:BOOL = OFF \

  • OSG_GL_FIXED_FUNCTION_AVAILABLE:BOOL = ON \

  • OSG_GL_LIBRARY_STATIC:BOOL = OFF \

  • OSG_GL_MATRICES_AVAILABLE:BOOL = ON \

  • OSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE:BOOL = ON \

  • OSG_GL_VERTEX_FUNCS_AVAILABLE:BOOL = OFF \

  • DYNAMIC_OPENSCENEGRAPH:BOOL = OFF \

  • DYNAMIC_OPENTHREADS:BOOL = OFF .

尝试使用这些配置进行配置,但收到以下错误 .

C编译器标识是AppleClang 6.1.0.6020053
CXX编译器标识是AppleClang 6.1.0.6020053
使用以下命令检查工作C编译器:Xcode
使用以下命令检查工作C编译器:Xcode - 已损坏
/Applications/CMake.app/Contents/share/cmake-3.3/Modules/CMakeTestCCompiler.cmake:61的CMake错误
(信息):
C编译器
“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang”
无法编译简单的测试程序 .

它失败并带有以下输出:

改变目录:/Users/adithiathreya/Downloads/OpenSceneGraph-3.4.0-rc9/CMakeFiles/CMakeTmp

运行Build命令:“/ usr / bin / xcodebuild”“ - project”
“CMAKE_TRY_COMPILE.xcodeproj”“build”“ - target”“cmTC_665b5”
“-configuration”“Debug”

===使用配置构建项目CMAKE_TRY_COMPILE的目标cmTC_665b5
调试===

检查依赖项

target指定产品类型'com.apple.product-type.tool',但没有
这种“iphoneos”平台的产品类型

建筑失败

以下构建命令失败:

检查依赖项

(1次失败)

CMake无法正确生成此项目 .
呼叫堆栈(最近一次呼叫):
CMakeLists.txt:52(项目)

配置不完整,发生错误!

我尝试了这些配置,iPhone Simulator也需要更改,但是出现了类似的错误 . 你能告诉我我哪里错了吗?

1 回答

  • 0

    您应该在cmake中指定IOS SDK版本和iPhone版本min .

    cmake ../ -G Xcode -DOSG_BUILD_PLATFORM_IPHONE:BOOL=ON \
    -DIPHONE_SDKVER="10.3" \
    -DIPHONE_VERSION_MIN="8.0" \
    -DOPENGL_PROFILE:STRING=GLES2 \
    -DBUILD_OSG_APPLICATIONS:BOOL=OFF \
    -DBUILD_OSG_EXAMPLES:BOOL=ON \
    -DOSG_WINDOWING_SYSTEM:STRING=IOS \
    -DOSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX="imageio" \
    -DDYNAMIC_OPENSCENEGRAPH:BOOL=OFF \
    -DDYNAMIC_OPENTHREADS:BOOL=OFF \
    -DCURL_INCLUDE_DIR:PATH="$THIRDPARTY_PATH/curl-ios-device/include" \
    -DCURL_LIBRARY:PATH="$THIRDPARTY_PATH/curl-ios-device/lib/libcurl.a"     \
    -DFREETYPE_INCLUDE_DIR_freetype2:PATH="$THIRDPARTY_PATH/freetype-ios-          universal/include/freetype" \
    -DFREETYPE_INCLUDE_DIR_ft2build:PATH="$THIRDPARTY_PATH/freetype-ios-  universal/include" \
    -DFREETYPE_LIBRARY:PATH="$THIRDPARTY_PATH/freetype-ios-universal/lib/libFreeType_iphone_universal.a" \
    -DTIFF_INCLUDE_DIR:PATH="$THIRDPARTY_PATH/tiff-ios-device/include" \
    -DTIFF_LIBRARY:PATH="$THIRDPARTY_PATH/tiff-ios-device/lib/libtiff.a" \
    -DGDAL_INCLUDE_DIR:PATH="$THIRDPARTY_PATH/gdal-ios-device/include" \
    -DGDAL_LIBRARY:PATH="$THIRDPARTY_PATH/gdal-ios-device/lib/libgdal.a"
    

    $ THIRDPARTY_PATH是您下载的第三方目录 .

相关问题