使用cMake跨iOS平台编译过程以及配置
2015-11-16 09:53
781 查看
跨iOS平台编译方法及问题
跨iOS编译过程
修改工程目录下的cmakelist.txt文件
默认开启VR_BUILD_PLATFORM_IPHONE,否则cmake时很多报错。
修改iphone版本,设置C++编译器,设置sdk目录
IF(IPHONE_VERSION_MIN LESS "6.0")
include(CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER(llvm-gcc-4.2 GNU)
CMAKE_FORCE_CXX_COMPILER(llvm-gcc-4.2 GNU)
SET(GCC_THUMB_SUPPORT NO)
ENDIF()
IF(VR_BUILD_PLATFORM_IPHONE)
SET (IPHONE_DEVROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer")
SET (IPHONE_SDKROOT "${IPHONE_DEVROOT}/SDKs/iPhoneOS${IPHONE_SDKVER}.sdk")
ELSE()
SET (IPHONE_DEVROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer")
SET (IPHONE_SDKROOT "${IPHONE_DEVROOT}/SDKs/iPhoneSimulator${IPHONE_SDKVER}.sdk")
ENDIF()
默认关闭VR_GL1_AVAILABLE,只开启VR_GL2_AVAILABLE
OPTION(VR_GL1_AVAILABLE "Set to OFF to disable use of OpenGL 1.x functions library."OFF)
默认关闭DYNAMIC_VRSTAR,使用静态编译
设置第三方依赖资源
设置c++标准库
IF (APPLE)
# set standard lib, clang defaults to c++0x
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++98")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -stdlib=libstdc++ -Wno-overloaded-virtual -Wno-conversion")
set(WARNING_CFLAGS "")
ENDIF()
设置xcode工程的部分属性
CMakeModules目录下添加相应的第三方Findxx.cmake脚本文件
配置第三方库的查找头文件路径,库全路径等,注意大小写。
启动Cmaker工具将cmakelist.txt拖入窗口
生成路径默认为cmakelist.txt所在目录,可更改(新建build文件夹)。
点击“Configure”按钮,进行选项配置,平台默认Xcode即可。
主要设置选项:
点击“Configure”按钮,直到配置成功。
最后点击“Generate”按钮,生成Xcode工程。
启动VRStar.xcodeproj,修改工程属性
1)总工程与各工程的Architectures改为标准结构,否则源码不能编译
根据ipad设备版本,修改IOS开发目标
build工程,快捷键command+B,运行command+R
C++源码跨IOS注意事项
包含头文件时有子目录分隔符必须用“/”,否则不识别“\”
VRString.cpp toString()中,Size_t 不同平台定义不同.win32中win64时为unsinged
long long;IOS下为unsigned long,总是重定义,暂时去掉
不要使用UInt32,与IOS中重复定义,改为_uint或unsinged int
跨iOS编译过程
修改工程目录下的cmakelist.txt文件
默认开启VR_BUILD_PLATFORM_IPHONE,否则cmake时很多报错。
修改iphone版本,设置C++编译器,设置sdk目录
IF(IPHONE_VERSION_MIN LESS "6.0")
include(CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER(llvm-gcc-4.2 GNU)
CMAKE_FORCE_CXX_COMPILER(llvm-gcc-4.2 GNU)
SET(GCC_THUMB_SUPPORT NO)
ENDIF()
IF(VR_BUILD_PLATFORM_IPHONE)
SET (IPHONE_DEVROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer")
SET (IPHONE_SDKROOT "${IPHONE_DEVROOT}/SDKs/iPhoneOS${IPHONE_SDKVER}.sdk")
ELSE()
SET (IPHONE_DEVROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer")
SET (IPHONE_SDKROOT "${IPHONE_DEVROOT}/SDKs/iPhoneSimulator${IPHONE_SDKVER}.sdk")
ENDIF()
默认关闭VR_GL1_AVAILABLE,只开启VR_GL2_AVAILABLE
OPTION(VR_GL1_AVAILABLE "Set to OFF to disable use of OpenGL 1.x functions library."OFF)
默认关闭DYNAMIC_VRSTAR,使用静态编译
设置第三方依赖资源
设置c++标准库
IF (APPLE)
# set standard lib, clang defaults to c++0x
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++98")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -stdlib=libstdc++ -Wno-overloaded-virtual -Wno-conversion")
set(WARNING_CFLAGS "")
ENDIF()
设置xcode工程的部分属性
CMakeModules目录下添加相应的第三方Findxx.cmake脚本文件
配置第三方库的查找头文件路径,库全路径等,注意大小写。
启动Cmaker工具将cmakelist.txt拖入窗口
生成路径默认为cmakelist.txt所在目录,可更改(新建build文件夹)。
点击“Configure”按钮,进行选项配置,平台默认Xcode即可。
主要设置选项:
点击“Configure”按钮,直到配置成功。
最后点击“Generate”按钮,生成Xcode工程。
启动VRStar.xcodeproj,修改工程属性
1)总工程与各工程的Architectures改为标准结构,否则源码不能编译
根据ipad设备版本,修改IOS开发目标
build工程,快捷键command+B,运行command+R
C++源码跨IOS注意事项
包含头文件时有子目录分隔符必须用“/”,否则不识别“\”
VRString.cpp toString()中,Size_t 不同平台定义不同.win32中win64时为unsinged
long long;IOS下为unsigned long,总是重定义,暂时去掉
不要使用UInt32,与IOS中重复定义,改为_uint或unsinged int
相关文章推荐
- ios - cordova 简介
- 运行项目编译报错
- iOS---升级Xcode之后VVDocumenter-Xcode不能用的解决办法
- iOS技术点:判断用户是否开启推送开关/是否允许推送?
- 判断当前iOS设备的方法
- iOS进阶精华帖索引(cocoaChina)
- 理解iOS多线程应用的开发以及线程的创建方法
- iOS 真机调试
- Ios中Json解析的四种方法
- ios开发调用OpenAL的alcOpenDevice(NULL)方法返回NULL的原因之一
- iOS学习笔记
- IOS开学第一天
- 蜂窝教育iOS培训:如何选择教学水平高机构
- iOS AutoLayout
- EXC_BAD_ACCESS 重现
- iOS中 自定义cell升级版 (高级)
- iOS学习之-开机引导图
- iOS多线程总结
- ios流媒体--播放,下载
- iOS开发之集成百度语音