У меня есть несколько файлов 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 -------------------------//
Спасибо!
Лучше построить каждую арку отдельно, а затем склеить их. Это помогает в определении различных или неправильно включенных заголовков для конкретной платформы и прочего.
Но по моему опыту, все это того не стоит, если вы можете избежать сборки через консоль. Создайте проект Xcode и используйте фальшивый фреймворк, если он вам подходит. Или создавайте статические библиотеки по отдельности, а потом склеивайте их самостоятельно.
Рассматривали ли вы -arch
флаг компилятора?
g++ -c file1.cpp file2.cpp -std=c++11 -arch x86_64 -arch i386 -arch armv7 #...