Russian Qt Forum
Ноябрь 23, 2024, 06:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Заблудился с джунглях скриптов  (Прочитано 6093 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Сентябрь 30, 2014, 10:44 »

Добрый день

Xcode на фазе "Run custom shell script" выдает такую бяку (километровые пути заменил для простоты)

Цитировать
mkdir -p <dir_name> ; ispc -I <dir_name> -I <dir_name> -I <dir_name> --arch=x86-64 --pic -O3 --target=sse2,sse4,avx,avx2 --woff --opt=fast-math -h <file_name> -MMM <file_name> -o <file_name> <file_name> ;

/bin/sh: ispc: command not found
Прочитал ReadMe, там сказано что надо ставить ispc. Хорошо, поставил и прописал путь в $PATH перманентно. Этот путь виден если печатать $PATH. Также если я в терминале наберу ispc - он запускается. Но не из скрипта. Делаю copy/paste текста выше в терминал, запускаю - неск секунд молчит и выходит на bash, никаких ошибок не выдает и в рез-те появляются новые файлы - ну наверное работает.

Ладно, делаю алиас на ispc и помещаю его в /usr/bin. Теперь скрипт видит его но вякает
Цитировать
Permission denied
Хотя из Finder'а алиас прекрасно стартует

Взял текст исходного скрипта, но там безнадюга, запускается CMake, он создает файлы с именами типа Script-2BEEB6D13E7744B089616EA6.sh, а они уже исполняются. То ли CMake "обрезал" path, то ли есть какие-то др правила path что мне неизвестны.

Как разрулить такую ситуевину, и почему она возникает?

Спасибо
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Сентябрь 30, 2014, 14:15 »

Цитировать
Хорошо, поставил и прописал путь в $PATH перманентно. Этот путь виден если печатать $PATH.
в каком месте это прописано? надо в ~/.bash_profile (текстовый файл)
Цитировать
Permission denied
можно попробовать chmod +x <файл> (ну или руками в свойствах файла выставить разрешение на запуск всем)
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Сентябрь 30, 2014, 14:52 »

в каком месте это прописано? надо в ~/.bash_profile (текстовый файл)
Да, там. Немного подразобрался: Xcode (когда запускает скрипт) юзает свой path, его можно посмотреть включив "Show Environment variables in Build Log" в опциях скрипта. Конечно там нет того пути что я прописал для терминала. Следующие 3 часа были посвящены нагугливанию как же изменить "тот" path - ну пока безуспешно

можно попробовать chmod +x <файл> (ну или руками в свойствах файла выставить разрешение на запуск всем)
Пробовал, так говорит "cannot execure binary file", наверное это правильно т.к. алиас сам по себе не исполняемый, его надо резолвить.

В конце-концов скопировал сам файл ispc в /usr/bin - и вроде захавал, но ведь так делать нехорошо, приложение может требовать файло в своем фолдере. Сейчас отдохну, буду дальше "собирать"  Плачущий
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Сентябрь 30, 2014, 17:47 »

в каком месте это прописано? надо в ~/.bash_profile (текстовый файл)

.bash_profile - это для интерактивного bash шелла, а скрипт выполняется наверняка в каком-то другом маленьком шелле типа dash, либо в самом bash но в режиме POSIX-совместимости, в таком случае должна помочь установка PATH не в .bash_profile, а в .bashrc . Но думаю, что по хорошему нужно искать где поменять PATH как это принято в Макоси.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Сентябрь 30, 2014, 19:48 »

как раз недавно гуглил этот вопрос (для терминала правда, а не для Xcode) — рекомендовали прописывать именно в .bash_profile. возможно после изменения этого файла надо перезапустить Xcode.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Сентябрь 30, 2014, 19:50 »

возможно после изменения этого файла надо перезапустить Xcode.
Скорее всего перелогиниться.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Сентябрь 30, 2014, 19:52 »

только что проверил — таки не читает он .bash_profile. тогда решением будет в Run Script Phase первой строкой написать
Код
Bash
export PATH=<нужные пути, разделенные двоеточием>$PATH
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #7 : Сентябрь 30, 2014, 19:59 »

как раз недавно гуглил этот вопрос (для терминала правда, а не для Xcode) — рекомендовали прописывать именно в .bash_profile.

Ну да, .bash_profile используется для интерактивного bash шелла, XCode о .bash_profile вообще ничего не знает. PATH унаследуется только если запускать XCode из bash (и только если XCode сам себе не меняет environment).
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Сентябрь 30, 2014, 20:01 »

http://stackoverflow.com/a/25578150 какое-то решение
и вот еще: http://blog.manbolo.com/2012/04/25/xcode-4-vs-me-running-custom-scripts-after-build (раздел The hard way), хотя по ссылке выше пишут, что вроде не работает этот способ

PATH Xcode'a такой:<куча его путей>:/usr/bin:/bin:/usr/sbin:/sbin
« Последнее редактирование: Сентябрь 30, 2014, 20:04 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Октябрь 05, 2014, 10:29 »

Извиняюсь что "пропал", со вторника не было света (все стреляют, никак не уймутся)
только что проверил — таки не читает он .bash_profile. тогда решением будет в Run Script Phase первой строкой написать
Код
Bash
export PATH=<нужные пути, разделенные двоеточием>$PATH
Пробовал вбить это первым скриптом Xcode, не понимает, показывает тот же "свой" path

PATH Xcode'a такой:<куча его путей>:/usr/bin:/bin:/usr/sbin:/sbin
Да, этот, "куча" - внутренние пути Xcode (Content)

Ладно, попробую продвинуться дальше, сейчас он запускает ispc, но потом не видит .a файла (разбираюсь)
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Октябрь 05, 2014, 15:19 »

> Извиняюсь что "пропал", со вторника не было света (все стреляют, никак не уймутся)
вряд ли это скоро закончится, лучше перебираться с востока
> Пробовал вбить это первым скриптом Xcode, не понимает, показывает тот же "свой" path
не отдельным скриптом, а строчкой выше запуска команды
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Октябрь 06, 2014, 13:33 »

В конце-концов прорвался, все "собралось", и я получил все проекты в Xcode!!!!! Помимо заморочки с путем было еще 2

1) Xcode не создает статик либу если нет компилируемых исходников (хотя объектные файлы в проект подключены). Добавил пустой cpp и Build Phase

2) ispc получал не тот ключ (X86-64, а надо X86). Надо в ccmake включить advanced (t) и там указать i386 (по умолчанию в этом поле пусто)

Ну вот, всего 3 дня - и "разобрался". Дней правда жалко  Плачущий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.161 секунд. Запросов: 22.