我完全感到困惑,并且需要创建C ++共享库的人的帮助,该库可以在任何使用任何IDE的平台上运行。
到目前为止我做了什么:
1)在Ubuntu中使用cmake创建了一个共享库。
2)将传输的源文件和Makefile(cmake)传输到MacOSX(El Capitan)
3)创建了构建目录
4)在Mac OS中使用终端,我跑了:
$ cmake ..
$ sudo make install
5)创建了支持armv7和arm64架构的Xcode iOS项目
6)使用标题搜索路径和库搜索路径查找我在
中安装的标题和库/usr/local/include/
和
/usr/local/lib
7)使用main.mm中的一个库头文件(重命名为main.m)中的一个,并为类创建了一个对象
8)由于以下原因,构建项目给我错误
ld: warning: ignoring file /usr/local/lib/libMyLibrary.dylib, file was built for x86_64 which is not the architecture being linked (arm64): /usr/local/lib/libMyLibrary.dylib
cmake_minimum_required(VERSION 2.8)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lsqlite3")
#Adding source files
file(GLOB SOURCES "src/*.cpp")
#Generate the shared library from the sources
add_library(MyLibraryName SHARED ${SOURCES})
target_compile_options(MyLibraryFolder PRIVATE -std=c++11 -lsqlite3)
add_executable(MyLibraryName ${SOURCES})
target_link_libraries(MyLibraryName PRIVATE -lsqlite3)
#Set the location for library installation. Use "sudo make install" to apply
install(TARGETS MyLibraryName DESTINATION /usr/local/lib)
install(DIRECTORY inc/${MyLibraryName_CPP} DESTINATION /usr/local/include)
任何人都可以帮助我,请...
答案 0 :(得分:0)
在第4步中,您将在MacOS上编译库x86_64
;你不能只将它复制到iOS的项目,因为iOS使用arm64
。
因此,您应该交叉编译arm64
的库,并将其用于您的iOS项目。