Как скомпилировать код Objective-C в Visual Studio

У меня есть старый проект, написанный на Objective-C. Было несколько собственных компиляторов, написанных для компиляции из кода Objective-C в код C. Однако из-за некоторых проблем совместимости эти компиляторы больше не работают.

В Build 2015 Microsoft продемонстрировала создание некоторых проектов с кодом Objective-C (.m) в Visual Studio. Однако я не могу найти шаги для их выполнения.

Ищем шаги для того же самого. У меня есть Visual Studio 2015 и 2017.

Я нашел демо [здесь] (youtube.com/watch?v=nK0SaMbuwrQ&t=1842s), которое будет вам полезно. Вся идея состоит в том, чтобы повторно использовать объектный код C, разработанный для iOS, при разработке приложений для универсальной платформы Windows (UWP). Я также не смог найти точных шагов.

Durai Amuthan.H 28.05.2019 11:21

Да, это трансляция Сборка 2015 г.. Это просто демонстрирует функцию, но не говорит, как это сделать. Я имею в виду, нужно ли мне устанавливать какое-либо расширение или ссылку на какие-либо библиотеки. Вот что я пытаюсь выяснить.

Sisir 28.05.2019 11:46
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
2
4 611
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я твердо уверен, что вы говорите о WinObjC, мосте Windows для iOS. Это проект с открытым исходным кодом, который предоставляет среду разработки Objective-C для Visual Studio и поддерживает API-интерфейсы iOS.

Вы должны установить To Chocolatey и winobjc-tools, чтобы начать работу с существующим проектом Xcode. Подробности установки здесь: Загрузка и установка WinObjC

Собственно, эта библиотека мне уже попадалась. Я подумал, что каким-то образом MS включила поддержку в VS 2015 по умолчанию или, по крайней мере, в VS 2017, может быть, в Xamarin или UWP.

Sisir 29.05.2019 14:36

С помощью этого инструмента я смог сгенерировать файлы sln и vcxproj. Однако я получаю тысячи ошибок компиляции. Не могли бы вы сказать, какую версию Clang или Objective-C он поддерживает? Потому что мой код был написан примерно в 1995 году. Я подозреваю несоответствие версий.

Sisir 29.05.2019 14:39

Если он написан примерно в 1995 году, лучше переписать весь код, чем улучшать существующий. После 1995 года произошли серьезные изменения, особенно в компиляторах и IDE. Пример: ARC представлен компилятором LLVM 3.0.

Shamsudheen TK 30.05.2019 07:24

К сожалению, у нас не так много времени, чтобы переписать код. Что касается ARC, сейчас мало что имеет смысл. Я постоянно получаю несколько ошибок, связанных с этим ARC.

Sisir 30.05.2019 08:11

вы можете отключить ARC требуется.

Shamsudheen TK 30.05.2019 08:39

1995? Вам обязательно нужно отключить ARC. Ваши классы, по крайней мере, наследуются от NSObject или они наследуются от старого суперкласса Object? Если второе... с сегодняшними компиляторами это будет сложно.

Carl Lindberg 30.05.2019 09:02

Они наследуются от NSObject. Как отключить ARC. Есть ли способ заставить современный компилятор работать в предыдущей версии, используя какой-то флаг или что-то в этом роде?

Sisir 30.05.2019 09:07

Обычно он превращается в на через флаг -fobjc-arc для clang. Его можно отключить с помощью флага -fno-objc-arc (иногда это требуется для определенных файлов, которые переопределяют значение по умолчанию). Я не знаю, используете ли вы clang — я не знаком с проектом WinObjC. Если это код NSObject, то, как я думаю, сегодня он должен хорошо компилироваться в режиме без ARC. Будет ряд методов, которые устарели и в паре мест удалены, но большинство методов в классах все еще существуют сегодня.

Carl Lindberg 30.05.2019 22:43

Другие вопросы по теме