Я использую дистрибутив Ubuntu 20.04.3 LTS и Ubuntu 18.04 LTS
Установка нужных пакетов и компиляторов
Будем использовать компилятор clang. Можно и gcc, но не все фичи будут работать(например блоки).
sudo apt-get install \ build-essential \ gobjc gobjc++ \ gnustep gnustep-devel \ libgnustep-base-dev \ clang gcc cmake git \ libblocksruntime-dev vim \ python3-dev -y
Инициализация проекта
Создаем файл CMakeLists.txt
# CMakeLists.txt set(CMAKE_EXPORT_COMPILE_COMMANDS 1) cmake_minimum_required(VERSION 3.0.0) project(HelloWorld) # Имя проекта SET(CMAKE_C_COMPILER clang) SET(CMAKE_CXX_COMPILER clang++) add_executable(HelloWorld # Исходные файлы проекта ) # Библиотеки для подключения target_compile_options(HelloWorld PRIVATE -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -fblocks -O2 -fgnu-runtime -fconstant-string-class=NSConstantString -I. # Dirs of GNUstep and libobj -I/home/ani/GNUstep/Library/Headers -I/usr/local/include/GNUstep -I/usr/include/GNUstep -I./libobjc2 ) target_link_libraries(HelloWorld gnustep-base objc BlocksRuntime) target_include_directories(HelloWorld PRIVATE usr/include/GNUstep/)
Инициализация Runtime библиотеки для Obj-C
В папку проекта клонируем библиотеку с github’а:
git clone https://github.com/gnustep/libobjc2
Далее билдим её:
cd libobjc2 git submodule init && git submodule update mkdir Build && cd Build cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ make -j8 sudo -E make install
Первый запуск
В папке проекта создаем файл main.m и кидаем в него такой код:
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Hello World"); } return 0; }
После этого в cmake в строчку add_executable добавляем файл main.m.
Переходим в папку проекта, вводим:
cmake . make ./НазваниеПроекта
Ура. Вы запустили свой первый Obj-C код на Linux
Настройка среды
Я буду использывать текстовый редактор vim.
То, как будет выглядеть автодополнение

Обновим vim:
sudo add-apt-repository ppa:jonathonf/vim sudo apt update sudo apt install vim
Установим этот конфиг файла .vimrc
Для установки всех плагинов, сначала нужно скачать библиотеку плагинов:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Далее запустить vim и в command mode напичатать: :PlugInstall
После нужно настроить ycm файл YouCompleteMe.
Кидаем этот конфиг в папку ~/.vim/Нужно скомпилировать библиотеку YouCompleteMe
cd ~/.vim/plugged/youcompleteme python3 install.py --clang-completer
Ребилдим obj-c проект. Готово. Наслаждайтесь
П.С.
При установке библиотеки YouCompleteMe могут быть ошибки версии cmake и g++
Вот ссылки на решения:
https://askubuntu.com/questions/355565/how-do-i-install-the-latest-version-of-cmake-from-the-command-line
https://stackoverflow.com/questions/65284572/your-c-compiler-does-not-fully-support-c17
ссылка на оригинал статьи https://habr.com/ru/post/656701/
Добавить комментарий