Ошибка clang: command not found в свежеустановленном Termux — самая частая причина, по которой у пользователя не запускается компилятор C на Android: пакетный менеджер требует сначала обновить репозитории и установить нужный пакет вручную. Проблема решается двумя командами, но важно понимать, какой вообще инструмент подходит под вашу задачу — вариантов несколько, и различаются они существенно.
Android не содержит встроенного компилятора C, поэтому код пишут и собирают либо через специализированные приложения с готовой средой, либо через эмулятор терминала с пакетами GCC или Clang. Ниже — разбор рабочих вариантов, их ограничений и порядок настройки без лишних экспериментов.
Какие компиляторы C доступны на Android
Выбор сводится к трём основным подходам. Первый — Termux, эмулятор терминала с полноценным окружением Linux и доступом к Clang и GCC через собственный репозиторий пакетов. Это самый гибкий вариант, близкий к настольной разработке.
Второй подход — приложения «всё в одном» вроде Cxxdroid и C4droid. Они включают редактор кода, компилятор и кнопку запуска в одном интерфейсе, что удобно для обучения и быстрых проверок. Третий вариант — онлайн-компиляторы в браузере, которые не требуют установки, но зависят от интернета и ограничены по времени выполнения.
- 📱 Termux — терминал с Clang/GCC, максимум контроля, нужна работа с командной строкой
- 🧩 Cxxdroid — IDE с компилятором C/C++, подсветка синтаксиса, запуск в один тап
- 🛠️ C4droid — классическая IDE с поддержкой C и C++, часть функций платная
- 🌐 Онлайн-компиляторы — ничего устанавливать не нужно, но код выполняется на удалённом сервере
Termux: полноценный Clang и GCC в терминале
Termux устанавливается из F-Droid — именно эту сборку поддерживают разработчики; версия в Google Play давно не обновлялась, и в ней репозитории пакетов могут не работать. После установки откройте приложение и обновите списки пакетов, затем поставьте компилятор.
pkg update && pkg upgrade
pkg install clang
Проверить установку можно командой clang --version. Если вместо версии снова появляется command not found, убедитесь, что обновление завершилось без ошибок и команда введена без опечаток. Пакет gcc в Termux фактически является обёрткой над Clang, поэтому для большинства задач достаточно одного компилятора.
⚠️ Внимание: не скачивайте Termux из сторонних сайтов и не используйте устаревшую сборку из Google Play — устаревшие репозитории приводят к ошибкам при установке пакетов, которые сложно диагностировать новичку.
Компиляция и запуск простой программы выглядят так. Создайте файл любым редактором (например, встроенным nano), затем соберите и запустите бинарник:
nano hello.c
clang hello.c -o hello
./hello
☑️ Первый запуск C-программы в Termux
Cxxdroid и C4droid: среда разработки без командной строки
Если терминал не нужен, проще поставить IDE. Cxxdroid ориентирован на C и C++: в нём есть автодополнение, подсветка ошибок до компиляции и запуск программы одной кнопкой. Для учебных задач и небольших программ этого достаточно, а работа с файлами происходит в привычной папочной структуре.
C4droid существует дольше и поддерживает как C, так и C++, часть расширенных возможностей доступна за отдельную плату. Перед покупкой проверьте бесплатные функции: базовая компиляция и запуск обычно доступны без оплаты.
Сравнение вариантов
Таблица ниже помогает выбрать инструмент под конкретную задачу. Учтите, что возможности приложений меняются от версии к версии — актуальный список функций проверяйте на странице приложения.
| Инструмент | Компилятор | Работа офлайн | Порог входа |
|---|---|---|---|
| Termux | Clang / GCC | Да | Средний — нужна командная строка |
| Cxxdroid | Встроенный GCC | Да | Низкий |
| C4droid | Встроенный GCC | Да | Низкий |
| Онлайн-компиляторы | На стороне сервера | Нет | Минимальный |
Ограничения компиляции на Android
Скомпилированный на смартфоне бинарник — это не APK-приложение. Он запускается только внутри среды, в которой был собран: программа из Termux работает в Termux, а не как самостоятельное приложение с иконкой. Чтобы получить полноценное Android-приложение с нативным кодом, потребуется Android NDK и сборка на ПК — на самом смартфоне этот процесс практически не применяется.
Ещё одно ограничение — доступ к файлам: начиная с современных версий Android, приложения работают в изолированном хранилище, поэтому программа «видит» только разрешённые каталоги. В Termux для доступа к общему хранилищу используется команда termux-setup-storage, после которой появляется каталог ~/storage. В IDE-приложениях доступ к файлам запрашивается через системное разрешение.
⚠️ Внимание: не выдавайте приложениям-компиляторам доступ ко всем файлам без необходимости. Достаточно разрешения на конкретную папку с исходниками — это снижает риск случайного удаления или утечки данных.
Также учитывайте производительность: сборка крупных проектов на смартфоне заметно медленнее, чем на ПК, и активно расходует заряд батареи. Для учебных программ и небольших утилит это не критично, но полноценную кросс-компиляцию больших проектов разумнее выполнять на компьютере.
Почему программа из Termux не запускается вне Termux
Бинарник собран под окружение Termux и использует его библиотеки и пути. Вне терминала система не находит нужные зависимости. Для запуска вне Termux потребуется статическая сборка или упаковка кода в APK через Android NDK на ПК.
Типичные ошибки и их решение
Чаще всего пользователи сталкиваются с тремя ситуациями. Первая — command not found после установки: обычно это следствие незавершённого обновления пакетов или устаревшей сборки Termux; повторите pkg update и переустановите пакет. Вторая — ошибка permission denied при запуске ./hello: проверьте, что файл находится в домашнем каталоге Termux, а не в общем хранилище, где исполнение файлов системой запрещено.
Третья группа проблем — ошибки самого компилятора: undefined reference, отсутствующие заголовки, синтаксические ошибки. Здесь помогает внимательное чтение сообщения: Clang указывает файл, строку и причину. Недостающие библиотеки в Termux ставятся тем же pkg install, например pkg install libmath-подобные пакеты ищутся через pkg search.
- 🔍
command not found— обновите пакеты и переустановите компилятор - 🔒
permission denied— перенесите бинарник из общего хранилища в домашний каталог Termux - 📦 Не найдена библиотека — поищите пакет через
pkg search имя - 🐢 Медленная сборка — закройте фоновые приложения и подключите зарядку
FAQ: частые вопросы
Можно ли скомпилированную на Android программу превратить в APK?
Напрямую — нет. Для создания APK с нативным C-кодом используется Android NDK, и полноценная сборка выполняется на ПК в Android Studio. На смартфоне такой процесс практически не применяется.
Что лучше для изучения языка C: Termux или Cxxdroid?
Для обучения удобнее Cxxdroid: редактор, компиляция и запуск в одном окне, без командной строки. Termux полезнее, если вы также хотите освоить работу в Linux-окружении.
Работает ли компилятор C на Android без интернета?
Да, после установки приложения и пакетов компиляция выполняется локально. Интернет нужен только для загрузки самого приложения и пакетов, а также для онлайн-компиляторов.
Почему Termux из Google Play выдаёт ошибки при установке пакетов?
Версия Termux в Google Play давно не обновляется, и её репозитории могут быть недоступны. Актуальная сборка распространяется через F-Droid — используйте именно её.
Можно ли компилировать C++ этими же инструментами?
Да. В Termux команда clang++ собирает C++-код, а Cxxdroid и C4droid изначально поддерживают оба языка — достаточно сохранить файл с расширением .cpp.