Сборка внешнего C / C ++ для LiveCode 9.01 с Xcode 10 - PullRequest
0 голосов
/ 07 октября 2018

Я взял на себя обслуживание старого приложения LiveCode, в котором используется пользовательская внешняя библиотека, написанная на C. Приложение больше не работает с последней платформой, и я уверен, что виноваты сложности с внешним.Я новичок в LiveCode и не часто использую XCode.

Я решил создать простой внешний интерфейс с использованием самой последней документации LiveCode, которую я смог найти (с ноября 2006 года):

http://newsletters.livecode.com/november/issue13/newsletter5.php

Поскольку архитектуры i386 больше не поддерживаются, я удалил PowerPC-32 и x86-32 из всех целевых конфигураций сборки проекта XCode, а i386 - из списка допустимых архитектур.Эти изменения позволяют проекту правильно встроить Xcode.

Xcode 10, похоже, не имеет того же интерфейса, на который ссылалась старая статья для сборки в режиме выпуска.Чтобы выполнить начальный шаг сборки в конфигурации выпуска, я запустил «Продукт»> «Архив» из меню.

Когда я затем «запустил» проект, убедившись, что конфигурация сборки из интерфейса «Управление схемами»«Debug», стек тестирования LiveCode rnaHelloStack.rev не открывается автоматически.Я могу добиться этого, определив исполняемый файл LiveCode Indy 9.0.1.app для схемы и EITHER:

1) Определение рабочего каталога в параметрах схемы И передача аргумента rnaHelloStack.rev в качестве аргумента.2) Выбор варианта запуска для схемы «Ожидание запуска исполняемого файла» и открытие файла rnaHelloTest.rev непосредственно из Finder после запуска проекта.

Во всех случаях, когда rnaHelloTest.rev имеет значениеоткрывается в LiveCode и я добавляю скрипт обработчика кнопки, код останавливает выполнение при вызове внешней функции.

Я возился с кодом LiveCode и переменными.Мое лучшее предположение - то, что внешнее не загружено должным образом в стек.Я искал более свежую документацию, но ничего не нашел, кроме этого старого поста на форуме, пытающегося сделать нечто подобное:

https://forums.livecode.com/viewtopic.php?f=17&t=11295&sid=380a6fe4b12111f767fc863262a3acf9

Как я могу убедиться, что такой простой внешний вид из документациидоступны для стека LiveCode через обновленную среду LiveCode 9.0.1 и Xcode 10?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Как уже упоминалось @jjsjjs, использование Xcode 9.4 пока будет проще, поскольку сам LiveCode по-прежнему поддерживает сборки i386, но Xcode больше не делает этого.Возможно, вы захотите создать универсальный бинарный файл для i386 и x86_64 на данный момент, если вы точно не уверены, что приложение будет создано только как x86_64.Если сборка только для x86_64, убедитесь, что LiveCode не открывается в 32-битном режиме с помощью флажка на палитре Get Info.Кстати, мы используем Xcode 9.4 и symlink в macOS 10.9 sdk и создаем LiveCode для этого.

Внешняя документация очень устарела.В настоящее время мы призываем людей использовать функции FFI в LiveCode Builder, однако, если вы просто хотите, чтобы внешнее устройство работало снова, а не начинало с нуля, я предлагаю клонировать один из моих внешних компонентов с открытым исходным кодом и основывать свое внешнее на этом.Либо mergJSON , либо mergMarkdown .Обратите внимание, что оба используют подмодули, поэтому убедитесь, что они клонируются рекурсивно.

Ни у одного из этих внешних объектов нет тестовой цели, с которой они запускаются в IDE.Вы копируете встроенный внешний файл в папку плагинов, следуя этим инструкциям , затем запускаете LiveCode.При разработке нового внешнего интерфейса я обычно добавляю фазу сборки, которая выполняет эти шаги с помощью сценария, чтобы сэкономить время.

В нашем репозитории также есть несколько примеров, поскольку мы используем gyp для генерациифайлы нашего проекта могут быть не такими полезными.

0 голосов
/ 08 октября 2018

Xcode 10 пока не поддерживается, возможно, скоро в новой версии.Livecode всегда немного отстает от новых выпусков Apple.Но это кажется логичным.Так что используйте Xcode 9.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...