最近在项目中遇到使用.dylib后缀的库不能在APP Store中上架,所以只能改用framework形式的库。
以下几个文件下载路径:https://download.youkuaiyun.com/download/zhuyunier/10715963
编译方式采用cmake,toochain中为iOS工具链iOS.cmake,目录结构如下:
CMake编译脚本如下:
#****************************This is Project Info****************************
PROJECT(SKYObject)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#****************************This is Compile Flag****************************
if(DEBUG)
message( STATUS "==============================debug==============================" )
ADD_DEFINITIONS(-g)
ADD_DEFINITIONS(-D AVX_DEBUG_LEVEL=AVX_DEBUG_DEBUG)
else(DEBUG)
message( STATUS "==============================release==============================" )
ADD_DEFINITIONS(-O2)
ADD_DEFINITIONS(-D AVX_DEBUG_LEVEL=AVX_DEBUG_INFO)
endif()
ADD_DEFINITIONS("-Wall")
ADD_DEFINITIONS("-fPIC")
ADD_DEFINITIONS("-Wl,-lm")
ADD_DEFINITIONS("-std=c++11")
SET(IPHONE_VERSION_MIN "10.0" CACHE STRING "IOS minimum os version.")
SET(CMAKE_CXX_FLAGS "-Wall -fPIC -Wl,-lm -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-abi-version=2 -fobjc-arc -std=gnu++11 -stdlib=libc++ -isysroot ${CMAKE_OSX_SYSROOT} -framework AVX -miphoneos-version-min=${IPHONE_VERSION_MIN}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fobjc-abi-version=2 -fobjc-arc -isysroot ${CMAKE_OSX_SYSROOT} -framework AVX -miphoneos-version-min=${IPHONE_VERSION_MIN}")
#****************************This is Include File/Directories****************************
#INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/)
INCLUDE_DIRECTORIES(../../../)
INCLUDE_DIRECTORIES(../../../Library/Include)
INCLUDE_DIRECTORIES(../../../Library/IOS/include)
INCLUDE_DIRECTORIES(../../../Library/IOS/include/libevent)
INCLUDE_DIRECTORIES(../../../Include)
#****************************This is Source File/Directories****************************
#AUX_SOURCE_DIRECTORY(../../Object/ Object_SRCS)
AUX_SOURCE_DIRECTORY(../../../Source/ Source_SRCS)
SET(DIR_SRCS ${Source_SRCS})
#****************************This is Library Directories****************************
LINK_DIRECTORIES(./)
LINK_DIRECTORIES(../../../Bin/IOS)
LINK_DIRECTORIES(../../../Library/IOS/lib)
#****************************This is 3Party Library****************************
LINK_LIBRARIES(pthread dl)
#****************************This is Output Directory****************************
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../../Bin/IOS)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../../Bin/IOS)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../../Bin/IOS)
#****************************This is Output Library****************************
ADD_LIBRARY(${PROJECT_NAME} SHARED ${DIR_SRCS} )
TARGET_LINK_LIBRARIES(${PROJECT_NAME} pthread dl)
set_target_properties(${PROJECT_NAME} PROPERTIES FRAMEWORK TRUE MACOSX_FRAMEWORK_IDENTIFIER com.skylight.SKYObject MACOSX_FRAMEWORK_INFO_PLIST Info.plist PUBLIC_HEADER