В моей компании есть куча кода Fortran. Традиционно мы скомпилировали код, который нам нужен, в .dll и назвали это .dll, когда нам нужно было сделать расчет. Сейчас мы пытаемся создать приложение для iPad, что, к сожалению, означает, что мы больше не можем просто вызвать DLL.
Один из моих коллег сумел создать простой проект командной строки, где мы вызываем файл Fortran для записи "Hello, World" в отладчике. Тем не менее, когда я пытаюсь заставить его работать на iPad на основе iPad, я получаю кучу ссылок, говорящих, что символы, которые я использую, не могут быть найдены. Я знаю, что Command Line Tool использует файл .cpp для фактического запуска Fortran, и я видел много потоков, связанных с вызовом .cpp файлов в приложении, но все те, которые я видел, устарели, прямо противоречат друг другу, и их исправления не работают для меня.
Мой вопрос: есть ли более прямой способ вызвать Fortran прямо из файла .m? Если нет, , что мне нужно сделать, чтобы взять рабочий инструмент командной строки и получить его в приложение?
ОБНОВЛЕНИЕ 1: после учебников, опубликованных в комментариях, я смог создать файл .o из моего кода Fortran. Я могу сделать File-Add Files, чтобы добавить его достаточно легко, но теперь, как я его на самом деле называю?
ОБНОВЛЕНИЕ 2: Ладно, детские шаги. Я узнал, что вы можете создать статическую библиотеку (я назову ее "new_library" ) из .o файлов ( "source_file.o" ) с помощью команды Terminal ar crv new_library.a source_file.o
(вы можете сделать это для нескольких файлов .o просто добавив source_file2.o source_file3.o
для большего количества файлов .o, как вы хотите - ПРИМЕЧАНИЕ: убедитесь, что вы используете cd
, чтобы попасть в папку, где находятся файлы .o). Я уверен, что Xcode будет работать с .a файлами, но кажется, что файл .h по-прежнему необходим, чтобы другие файлы в проекте (например, контроллеры представлений) вызывали вызовы в файл .a. Я знаю, что могу создать новый .a файл из самого Xcode (New Project → iOS → Framework и Library → Cocoa Touch Static Library), но когда я это делал в прошлом, я просто пишу нормальные .m и .h файлы, а когда я создаю новую библиотеку, он просто сбрасывает все файлы .m в 1.a. Когда я хочу использовать код в этом .a в другом проекте, я просто импортирую файлы .a и все .h в новый проект, и я могу вызвать методы в файле .a так же, как если бы я импортировал все отдельные файлы .m. Итак, следующий вопрос: мне все еще нужен .h, когда мой .a создается с помощью терминала вместо Xcode? Если это так, , как я могу создать заголовочный файл Fortran? Если нет, , как я могу назвать свой код Fortran в .a?