Я полностью смущен и нуждаюсь в помощи от того, кто создал общую библиотеку C++, которая будет работать на любой платформе, используя любой IDE.Облицовка проблем при создании общей библиотеки C++ для нескольких архитектур (x86_64, armv7, armv7s, arm64, i386)
Что я сделал до сих пор:
1) Создан разделяемую библиотеку с помощью CMake в Ubuntu.
2) Перенесенные исходные файлы и Makefile (CMake) для MacOSX (El Capitan)
3) Создан каталог сборки
4) Использование терминала в Mac OS, я побежал:
$ cmake ..
$ sudo make install
5) Создал проект iOS Xcode, поддерживающий архитектуры armv7 и arm64
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
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)
Может кто-нибудь помочь мне с этим, пожалуйста ...
@halfelf - спасибо за изменения. Я новичок в этом, так что это действительно большая помощь. – San
Я не могу говорить с компилятором и вариантами OSX. Но, надеюсь, это https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html#Submodel-Options может указать вам ближе к намеченной цели. Кроме того, я бы искал кросс-компиляторы, а ссылка, которую я поставил, может быть не такой, о чем вы просите. – M4rc