LINUX.ORG.RU

Как в долбаной Макоси вернуться с компиляции под iPhone на x86??

 , , ,


0

1

Возможно легкий оффтопик, но больше идти некуда.

Фирма, которая с недавних пор может похвастаться только сексуальной ориентацией своего нового гендиректора, сделала охрененное решение.

Когда запускаешь XCode (это такая поделка на тему KDevelop) и выбираешь компиляцию под iPhone, то это чудо меняет окружение шелла так, что местный clang начинает всё собирать только под айфон.

Причем делает это в лучших традициях маздая: не в ~/.bash_profile прописывает эти настройки, а в бинарный конфигурационный файл, который хорошо спрятан.

В итоге ничего не собирается со словами:

ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/usr/lib/libSystem.dylib' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) configure: failed program was:

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

Может кто-нибудь в курсе, как это поменять?

Вот ей богу, лучше бы их директор по тематическим клубам ходил, чем фирмой руководил.

Зашквар.

Я так понимаю, это предыдущий программист наваял? Смотри в настройках проекта, скорее всего Build Rules, но можно просто грепнуть интересующие кейворды внутри .xcodeproject'а.

anonymous
()
Ответ на: комментарий от anonymous

да нет, не предыдущий.

Это я сгенерировал react-native проект, запустил его, скомпилировал и залил на айфон.

Теперь clang во всей макоси по дефолту компиляет под айфон.

Меня интересует не сама настройка проекта, а где выставляются переменные окружения, которые заставляют даже после ребута компилировать под iphone.

max_lapshin ★★★★★
() автор топика

Эмм, не наблюдаю такого, по крайней мере работая в связке QtCreator + XCode.

CrossFire ★★★★★
()
Ответ на: комментарий от max_lapshin

У меня тоже такого нет, хотя компилятор в системе юзается мама не горюй. Может дело не в жопе директора, а в ручках кривых? Вывали хоть диагностику компилятора на тот момент, дамп внутренних переменных там какой-нибудь, сравним.

anonymous
()
Ответ на: комментарий от max_lapshin

Имхо тебе этот твой реакт-нативе и поднасрал. Это тулкит с того сайта, который весь на пхп написан, iirc?

Попробуй переустановить Xcode command-line tools, или маккипер поставь, у них триал 15 дней :D

anonymous
()
Ответ на: комментарий от anonymous

маккипер, конечно нет =)

По ходу выяснилось, что дело в больном на голову терминале.

Т.е. когда стартуешь xcode с react-native проектом, то после этого новые шеллы идут с окружением, настроенным под айфон.

max_lapshin ★★★★★
() автор топика
Ответ на: комментарий от max_lapshin

Я тебе так и подумал, что в проекте есть ручное правило, которое мутит особую, уличную дичь. Его надо найти, а тех, кто его прописал, запереть в клетке с вашим гендиректором. Небось еще этому говноподелию между делом пароль от системы подарил?

anonymous
()
Ответ на: комментарий от max_lapshin

Меня интересует не сама настройка проекта, а где выставляются переменные окружения

Вот, опытным путем нашел:

$ launchctl setenv AAA 1
<полностью выходим из терминала и снова заходим>
$ launchctl getenv AAA
1
$ env | grep AAA
AAA=1
Та же хренота происходит при сборке проекта, инфа сотка.

anonymous
()
Ответ на: комментарий от anonymous

Также возможно, что при [полном] clean'е (Cmd[-Alt]-Shift+K) они эти переменные сбрасывают в нормальные/пустые значения.

anonymous
()

Когда запускаешь XCode (это такая поделка на тему KDevelop) и выбираешь компиляцию под iPhone, то это чудо меняет окружение шелла так, что местный clang начинает всё собирать только под айфон.

Макось говно, хакод говно. Но как вы умудрились добиться такого для меня загадка.

andreyu ★★★★★
()

то-ли в build rules, то-ли в build phases есть переменная $PATH. Поменяй её руками на нужную.

Aswed ★★★★★
()
Ответ на: комментарий от anonymous

ого, ты мне прям сейчас много нового рассказал, спасибо!

max_lapshin ★★★★★
() автор топика
Ответ на: комментарий от max_lapshin

Это не специальный демон, это pid 1, что-то среднее между xdm и init. Все Whatever.app стартуют от него, а не от Finder'а или шелла, когда ты кликаешь или говоришь open. Они просто посылают ему через какой-то сокет запрос на запуск. Плюс он следит за демонами, в т.ч. пользовательскими, если они есть (он вообще за дохрена чем следит, вся система на нем). Я просто точно не знал, что он еще и переменные окружения может так принимать. Дальше они наследуются обычным образом через exec().

tl;dr это systemd по-макосевски.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.