Створення простої програми “Hello, world!”

Це другий розділ серії статей “Hello, world!” для OpenWrt. На цьому етапі ви вже повинні були виконати такі дії:

  • Підготували середовище розробки
  • Налаштували та зібрали інструменти та крос-компілятор
  • Додали директорію інструментів до змінної середовища `PATH`

Якщо ви пропустили один або кілька із зазначених кроків — поверніться до попередніх розділів.

Хороша практика в розробці ПЗ — розділяти компоненти за відповідальністю, залишаючи лише мінімально необхідні точки взаємодії між ними. Цей підхід називається поділом обов'язків (separation of concerns).

Щоб дотримуватись цього принципу, ми помістимо вихідний код нашої програми в окрему директорію, що не пов’язана напряму з системою збірки OpenWrt. Назвемо директорію `helloworld` та створимо її в домашній директорії користувача розробника:

cd /home/buildbot
mkdir helloworld
cd helloworld

Тепер створимо єдиний файл з вихідним кодом для нашої програми — `helloworld.c`:

touch helloworld.c

Використовуючи ваш улюблений текстовий редактор, вставте в новостворений файл такий вміст:

helloworld.c
#include <stdio.h>
 
int main(void)
{
    printf("\nHello, world!\n\n");
    return 0;
}

Після створення файлу з кодом, перевіримо, чи можемо зібрати й запустити програму за допомогою звичайних інструментів компіляції, доступних у середовищі розробки:

gcc -c -o helloworld.o helloworld.c -Wall
gcc -o helloworld helloworld.o

Перша команда компілює `helloworld.c` у об'єктний файл, а друга — створює звязки з потрібними бібліотеками та стартовими файлами, створюючи виконуваний файл `helloworld`.

Запустіть програму:

./helloworld

У відповідь має з’явитися текст: `Hello, world!`

Якщо ви не побачили цього повідомлення або виникли помилки — перевірте правильність вмісту файлу `helloworld.c`, а також наявність компілятора `gcc` у вашій системі.

У цьому розділі ми створили просту виконувану програму за допомогою вбудованих інструментів компіляції вашого середовища. Також ми торкнулися однієї з фундаментальних концепцій розробки ПЗ — поділу обов'язків.

  • Last modified: 2025/05/25 17:12
  • by vazaz