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

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

Страниц: [1] 2 3 ... 5   Вниз
  Печать  
Автор Тема: Xcode IDE  (Прочитано 50602 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Октябрь 11, 2014, 10:29 »

Добрый день

Переползаю на Xcode 4.6.2 (хоть и не самый новый). Ну помаленьку руки привыкают, работать можно, но есть ряд заморочек.

- как линковать статик либу? Можно просто добавить в проект, но тогда придется вручную переключать файл либы для Debug/Release. Можно вбить полный путь либы в "Other Linker Flags", один файл для Debug, др. для Release - и с переключением нет проблем. Но тут др беда - измененная либа "не подхватывается".

Напр изменил я что-то в либе, нажимаю Run. Вроде все норм - измененный файл перкомпилился, либа пересоздалась, потом пересоздалось приложение, это видно и в логе и по дате .а файла. Но на выполнении изменений в коде нет - видно в ассемблере Плачущий Конечно после Build All они появляются, но так не разгонишься.

ЧЯДНТ?

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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Октябрь 11, 2014, 14:38 »

Цитировать
Но тут др беда - измененная либа "не подхватывается".
может надо ее в Dependencies засунуть?

кстати 4.6.3 же самая последняя версия из линейки 4-ки
Записан

Изучением 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 : Октябрь 11, 2014, 16:22 »

Цитировать
Но тут др беда - измененная либа "не подхватывается".
может надо ее в Dependencies засунуть?
Project -> Build Phases. Здесь 2 возможности

а) Target Dependencies "свиток" - туда добавлен проект статик либы (но не сама .а), и это работает - она проверяется и, если надо, перекомпилируется

b) Link Binary With Libraries - так опять же там я могу добавить .a файл или Debug или Release - но не оба вместе

кстати 4.6.3 же самая последняя версия из линейки 4-ки
Та вроде там уже пятерка - но пока здоровье не позволяет
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Октябрь 11, 2014, 16:44 »

а) ну так... работает же? я это и имел в виду.
кстати 4.6.3 же самая последняя версия из линейки 4-ки
Та вроде там уже пятерка - но пока здоровье не позволяет
6 Подмигивающий
Записан

Изучением 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


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

а) ну так... работает же? я это и имел в виду.
К сожалению нет. Да, либы перекомпилируются, но в исполняемый файл почему-то не всасываются - там сидит старый код до тех пор пока не сделаю Build All (ну то есть "Clean")  Плачущий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Октябрь 11, 2014, 18:57 »

в качестве временной меры можно добавить run script phase в самое начало и удалять существующую либу.

б) можно попробовать схитрить через символическую ссылку, которая будет создаваться через run script phase.

в качестве альтернативной меры можно попробовать создать таргет-дубликат специально для релиз версии.
Записан

Изучением 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


Просмотр профиля
« Ответ #6 : Октябрь 12, 2014, 08:00 »

в качестве временной меры можно добавить run script phase в самое начало и удалять существующую либу.

б) можно попробовать схитрить через символическую ссылку, которая будет создаваться через run script phase.
Так а что это дает если и так новый .a файл прекрасно создается? Беда в том что к приложению он почему-то не линкуется - код остается как был.

в качестве альтернативной меры можно попробовать создать таргет-дубликат специально для релиз версии.
Ой, лучше не надо, если установки "разбегутся" - придется долго пыль глотать.

Ну ладно, не умру, пока попереключаю либы или перед релизом буду делать Clean, это не так уж часто. Не все должно иметь простой ответ.

-----------

Следующая позиция - часто не работает "Issues Navigator". При клике на ошибку не позиционирует на нее в файле, при двойном клике открывает файл и просто ставит на начало. Если потом файл полистать - красные бубочки ошибок появляются, но видимо это рез-т проверки в idle. Не в курсе про этот невдобняк?

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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Октябрь 12, 2014, 13:41 »

в качестве временной меры можно добавить run script phase в самое начало и удалять существующую либу.

б) можно попробовать схитрить через символическую ссылку, которая будет создаваться через run script phase.
Так а что это дает если и так новый .a файл прекрасно создается? Беда в том что к приложению он почему-то не линкуется - код остается как был.
чтобы
Можно вбить полный путь либы в "Other Linker Flags", один файл для Debug, др. для Release - и с переключением нет проблем.
вбивается путь к ссылке в обе конфигурации, а ссылка будет генерироваться с учетом текущей конфигурации (эта переменная, как и множество других, доступна при run script phase)

Следующая позиция: наверное баг 4-й версии, в 5-6 проблем не замечал.

а что мешает сразу скакнуть на версию повыше? необходимость в старом сдк?
Записан

Изучением 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


Просмотр профиля
« Ответ #8 : Октябрь 12, 2014, 14:53 »

вбивается путь к ссылке в обе конфигурации, а ссылка будет генерироваться с учетом текущей конфигурации (эта переменная, как и множество других, доступна при run script phase)
Не знаю можно ли так в "Other Linker Flags", но это не актуально, там есть выбор Debug/Release и я могу вбить для каждого - но так он "не линкует". А добавлять файл либы в проект - линкует, но имя добавленного не может быть макро

Следующая позиция: наверное баг 4-й версии, в 5-6 проблем не замечал.

а что мешает сразу скакнуть на версию повыше? необходимость в старом сдк?
Да. Плюс неизвестно потянут ли новые icc 13(тоже староват). Не в курсе новые поддерживают OSX 10.7?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Октябрь 12, 2014, 18:56 »

в гугле пишут, что Other Linker Flags работает. но может это для «раз скомпилил библиотеку и забыл».
Следующая позиция: наверное баг 4-й версии, в 5-6 проблем не замечал.

а что мешает сразу скакнуть на версию повыше? необходимость в старом сдк?
Да. Плюс неизвестно потянут ли новые icc 13(тоже староват). Не в курсе новые поддерживают OSX 10.7?
старый сдк можно просто скопировать из старой версии Xcode (ну или символическую ссылку сделать, если будут оба хкода стоять).

про icc ничего не скажу, но не вижу почему иде не должна работать с рабочим компилятором.

в Xcode 5 доступны 10.8 и 10.9 сдк, в 6 — 10.9 и 10.10 (последний сдк есть если работать в йосмите).
Записан

Изучением 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


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

старый сдк можно просто скопировать из старой версии Xcode (ну или символическую ссылку сделать, если будут оба хкода стоять).

про icc ничего не скажу, но не вижу почему иде не должна работать с рабочим компилятором.
Вот так просто? Улыбающийся  Собственно мне нужен SDK 10.6 т.к. (пока) поддерживаются старые структуры GWorldPtr и др.  В 10.7 я это впихнул - но с большим трудом.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #11 : Октябрь 12, 2014, 23:20 »

да Улыбающийся как-то пробовал с 10.5 сдк.
Записан

Изучением 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


Просмотр профиля
« Ответ #12 : Октябрь 14, 2014, 18:12 »

Уже смирился с неудобством - и тут случайно нашел как удобно подключить либы! Откомпиленные .a файлы появляются в папке/мамке Products, вот там им надо поставить memnership. Тогда если проект приложения переключается то пути сами подставляются. Правда надо иметь одно имя либы для Debug/Release
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


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

Следующая позиция
про icc ничего не скажу, но не вижу почему иде не должна работать с рабочим компилятором.
Вот как раз нужно подключить рабочий компилятор Улыбающийся  Расклад такой:

- приложение 64-бит слинкованное в Xcode крашится, но сборка через cmake работает. Сравнил логи как компилируется там и сям, единственная существенная разница - Xcode запускает компилятор icc, а cmale - icpc. Оба стоят, но как сказать Xcode использовать icpc? А попапке есть только "Intel." и все (как в Build Settings так и в Build Rules). Порыскав по файлам вижу что компиляторы подключаются как плагины, файлы .xcplugin. но для intel этого файла нет. Попытка ввести др идентификатор в "Other.." (напр com.intel.compilers.icpc.13_0_0) конечно не проходит. Шо делать?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #14 : Октябрь 16, 2014, 13:21 »

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

а эти xcplugin файлы можно редактировать или свои создавать?
Записан

Изучением 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
Страниц: [1] 2 3 ... 5   Вверх
  Печать  
 
Перейти в:  


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