Статическая библиотека Xcode Cocoa Touch для Objective Pascal не может содержать массивы строк? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть большая программа, созданная на Паскале, которую я пытаюсь использовать в качестве скомпилированного ресурса для проекта Objective-C.

Я выполнил шаги с здесь .

Я могу включить в проект некоторые из моих старых файлов .pas, но не те, в которых есть массивы строк.

Это не означает, что компилятор не может прочитать эти файлы, содержащие массивстрок, на самом деле он создает файл ресурсов правильно.Однако при тестировании файла ресурсов в проекте Objective C он вылетает из-за проблемы несовместимости i386.В одном из файлов, которые я пытаюсь включить, есть массивы строк, и если я сотру эти массивы, у меня не возникнет проблем с использованием моего ресурса.Кто-нибудь может сказать мне, что происходит?Есть ли другие проблемы, которые я также получу из массива несовместимости строк.

Ответы [ 2 ]

0 голосов
/ 12 июля 2012

Я использую бесплатный паскаль с Objective-C без проблем для iPad / iPhone .

Какие переключатели компиляции вы используете?Вот мое для симулятора:

/usr/local/bin/ppc386 -n -l -viwn -a -s -vbr \
-Scghi -Sh  \
-Xs  -g \
-FE. -Mmacpas -ghlttt \
-gw2 -O- \
-CRriot -Cr- -Mobjfpc \
-Fl/Xcode3.2.5/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib \
-Fi"some/file.pas" \
-Fi"some/dir/*" \
-Fu"anoter/dir" \

, затем переместите все .s в какой-то целевой путь поиска библиотеки, например:

cp -v *.s "$/some/dir/your_app/build/your_app.build/Debug-iphonesimulator/your_app.build/DerivedSources-normal/i386/" 

Если ничего не помогает, вы можете попробовать использовать TStringList вместо Массив строк .

0 голосов
/ 10 марта 2012

Вам действительно нужно быть более конкретным, чем «он падает из-за проблемы несовместимости i386», если вы хотите получить полезную помощь. Лучший способ - отправить отчет об ошибке на bugs.freepascal.org с полностью компилируемым примером, демонстрирующим проблему.

Чтобы ответить на комментарий Марко (я не могу добавлять комментарии, потому что у меня нет учетной записи stackoverflow): RTL всегда автоматически инициализируется при использовании библиотек в Mac OS X, даже независимо от того, используете ли вы статический или динамический библиотека.

...