компиляция — компиляция файлов c ++ для всех архитектур iOS

У меня есть несколько файлов cpp, которые я хотел бы скомпилировать для запуска на симуляторе и iPhone. То, что я пытаюсь сделать, это:

g++ -c file1.cpp file2.cpp -std=c++11
ar rcs libabc.a *.o

И это хорошо компилируется, но только для архитектуры x86_64. Очевидно …

Есть ли какой-нибудь простой способ отредактировать эти 2 командные строки, чтобы скомпилировать библиотеку для всех архитектур (x86_64 i386 armv7 armv7s arm64)? Или я должен создать несколько огромных скриптов для этой библиотеки? Если так? Есть ли готовые сценарии для этого?

Я также попытался запустить его с помощью -arch:

g++ -c file1.cpp file2.cpp -std=c++11 -arch armv7 -arch x86_64

но это некоторые ошибки, которые я получаю

//----------------- Error 1 -------------------------//

введите описание изображения здесь

//----------------- Error 2 -------------------------//

введите описание изображения здесь

//----------------- Error 3 -------------------------//

введите описание изображения здесь

Спасибо!

6

Решение

Лучше построить каждую арку отдельно, а затем склеить их. Это помогает в определении различных или неправильно включенных заголовков для конкретной платформы и прочего.

Но по моему опыту, все это того не стоит, если вы можете избежать сборки через консоль. Создайте проект Xcode и используйте фальшивый фреймворк, если он вам подходит. Или создавайте статические библиотеки по отдельности, а потом склеивайте их самостоятельно.

0

Другие решения

Рассматривали ли вы -arch флаг компилятора?

g++ -c file1.cpp file2.cpp -std=c++11 -arch x86_64 -arch i386 -arch armv7 #...
4