Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/188: Рейтинг темы: голосов - 188, средняя оценка - 4.64
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Как скомпилировать программу под Linux

09.12.2011, 02:56. Показов 36401. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учитывая что прикреплённых тем в этом разделе "видимо-невидимо" попробую задать глупый вопрос: как скомпилировать приложение под Linux? Вот есть у меня задание написать небольшие программы под Linux (Knoppix), ну допустим я что-то напишу в txt файл, а как мне его потом скомпилировать под этой os? Насколько я знаю в Linux встроен компилятор, как им воспользоваться через командную строку подскажите пожалуйста или дайте толковую ссылку где можно об этом почитать.

Добавлено через 19 минут
Собственно на данном этапе из того что я понял:
я создал на раб. столе hello.c файл, из командной строки knoppix перешёл в необходимый мне каталог и написал команду
Code
1
gcc hello.c
После чего получил рядом со своим файлом с кодом файл a.out и что дальше тогда делать?

Добавлено через 3 минуты
Также мне интересно что использовать в линукс для задержки, если conio.h я подключить не могу и соответственно getch() я вызвать тогда тоже не могу.

Добавлено через 51 минуту
В принципе с запуском из командной строки разобрался, но не разобрался почему же оно так не запускается.

Добавлено через 5 минут
Прихожу к выводу что нужна какая-то книга по программированию на С под Linux где будут эти тонкости по запуску и взаимодействию с Linux описаны ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.12.2011, 02:56
Ответы с готовыми решениями:

Как скомпилировать IV:MP Server под Linux?
Можете помочь скомпилировать IV:MP Server под Linux пожалуйста. Вот ссылка на исходник https://yadi.sk/d/5huOL7pzbwkZv

Скомпилировать программу с инклудами в Linux
Здравствуйте. Начал читать книгу "UNIX. Разработка сетевых приложений". Застрял в самом начале на компиляции программы :) Как я...

Как скомпилировать прогу под Ubuntu?
Для работы мне понадобился симулятор дорожного движения. Я нашел готовый исходный код симулятора дорожного движения под UNIX (к...

12
Заблокирован
09.12.2011, 05:13
Цитата Сообщение от Gepar Посмотреть сообщение
После чего получил рядом со своим файлом с кодом файл a.out и что дальше тогда делать?
ну очевидно запускать его, что ещё с ним можно сделать интересного?
0
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
09.12.2011, 09:40
Прихожу к выводу что нужна какая-то книга по программированию на С под Linux где будут эти тонкости по запуску и взаимодействию с Linux описаны ...
19+3+51+5 = 78 минут. Довольно неплохое время, для вставания на верное направление)
0
13 / 13 / 0
Регистрация: 11.10.2011
Сообщений: 116
09.12.2011, 16:29
Цитата Сообщение от Gepar Посмотреть сообщение
Учитывая что прикреплённых тем в этом разделе "видимо-невидимо" попробую задать глупый вопрос: как скомпилировать приложение под Linux? Вот есть у меня задание написать небольшие программы под Linux (Knoppix), ну допустим я что-то напишу в txt файл, а как мне его потом скомпилировать под этой os? Насколько я знаю в Linux встроен компилятор, как им воспользоваться через командную строку подскажите пожалуйста или дайте толковую ссылку где можно об этом почитать.

Добавлено через 19 минут
Собственно на данном этапе из того что я понял:
я создал на раб. столе hello.c файл, из командной строки knoppix перешёл в необходимый мне каталог и написал команду
Code
1
gcc hello.c
После чего получил рядом со своим файлом с кодом файл a.out и что дальше тогда делать?

Добавлено через 3 минуты
Также мне интересно что использовать в линукс для задержки, если conio.h я подключить не могу и соответственно getch() я вызвать тогда тоже не могу.

Добавлено через 51 минуту
В принципе с запуском из командной строки разобрался, но не разобрался почему же оно так не запускается.

Добавлено через 5 минут
Прихожу к выводу что нужна какая-то книга по программированию на С под Linux где будут эти тонкости по запуску и взаимодействию с Linux описаны ...
Есть пару компиляторов g++ и gcc, схема такая - перешел в каталог с файлом, для обеих компиляторов структура одинаковая, в командной строке пишешь: имя_компилятора -параметры имя_файла -о имя_бинарника, запуск осуществляешь находясь в этой же папке при помощи ./имя_бинарника
Bash
1
2
g++ hello.c -o hello
./hello
Не забудь правильно подключить инклюды, в командной строке задержка экрана не нужна.
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
10.12.2011, 00:38  [ТС]
Цитата Сообщение от KuKu Посмотреть сообщение
19+3+51+5 = 78 минут. Довольно неплохое время, для вставания на верное направление)
Было бы быстрее если бы этот кнопикс не работал временами через одно место, он ведь out файлы создаёт, пишет что это исполняемый файл и всё мол проассоциировано, но не запускает ведь гад. Только из командной строки + я так и не понял в чём хитрость что если написать в коде что-то типа
C++
1
2
3
4
printf("1");
printf("2");
system("time");
printf("3");
то вот никогда не догадаешься когда выполниться system и выведется время, оно может вывестись в самом начале, после первого printf, после второго, тупо в конце. В честь чего этот рандом? Приходиться изощряться и если оно выводится не когда надо пытаться чуточку изменить код (слепливать два printf чтобы obj файл получался другим и вызов system куда-то сдвинулся).

Цитата Сообщение от Rels Посмотреть сообщение
Есть пару компиляторов g++ и gcc, схема такая - перешел в каталог с файлом, для обеих компиляторов структура одинаковая, в командной строке пишешь: имя_компилятора -параметры имя_файла -о имя_бинарника, запуск осуществляешь находясь в этой же папке при помощи ./имя_бинарника
Ну это я понял так как ещё вчера разобрался с запуском приложений из командной строки.

Цитата Сообщение от Rels Посмотреть сообщение
Не забудь правильно подключить инклюды, в командной строке задержка экрана не нужна.
Это логично что она в этом случае не нужна но почему её нет, да и почему вообще conio.h нет? Какой-то непонятный си под линуксом получается, нет ну то что библиотека windows.h только под windows это логично, но почему conio.h под линуксом нет-то?
Вопрос насчёт книги по линуксу всё ещё актуален, сколько не гуглил - либо qt программирование под линукс (ага, очень умно учить с++ сразу в виде qt под линукс, и кто додумался так написать книгу) либо книги по си, которые якобы под линукс, но на деле просто чистый си.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.12.2011, 01:04
Цитата Сообщение от Gepar Посмотреть сообщение
conio.h
не является стандартным заголовком С/С++, изначально он разрабатывался для построения интерфейсов в MS DOS, так что ничего удивительного что его нет в linux
0
13 / 13 / 0
Регистрация: 11.10.2011
Сообщений: 116
10.12.2011, 09:37
Цитата Сообщение от Gepar Посмотреть сообщение
Вопрос насчёт книги по линуксу всё ещё актуален, сколько не гуглил - либо qt программирование под линукс (ага, очень умно учить с++ сразу в виде qt под линукс, и кто додумался так написать книгу) либо книги по си, которые якобы под линукс, но на деле просто чистый си.
Для начала поставь нормальный дебиан или федору, если уж так кнопикс нравится...И собственно различия в программировании, что под windows, что под линукс не такие уж и большие, главное сам язык знать. Если бы книги писали дураки, их бы наверное не выпускали...qt полностью основан на ООП, в свою очередь С++ является классическим примером ООП, так что не так все смешно, как кажется...И мой тебе совет, бери какую-либо задачу и пытайся ее реализовать, книги книгами, но практика наше все
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
14.12.2011, 22:55  [ТС]
Цитата Сообщение от Rels Посмотреть сообщение
Для начала поставь нормальный дебиан или федору, если уж так кнопикс нравится...
Сдавать мне потом всё в кнопиксе этом лабораторные и я должен быть уверен что всё работает.

Цитата Сообщение от Rels Посмотреть сообщение
qt полностью основан на ООП, в свою очередь С++ является классическим примером ООП, так что не так все смешно, как кажется...
Смешно-смешно да ещё как, мне нужно чисто программирование под линукс, а не через обёртки и интерфейсы Qt. Хотя вопрос по книге снимается уже.
0
12 / 12 / 0
Регистрация: 31.10.2011
Сообщений: 35
14.12.2011, 23:25
Цитата Сообщение от Gepar Посмотреть сообщение
Сдавать мне потом всё в кнопиксе этом лабораторные и я должен быть уверен что всё работает.
.
Вообще-то бинарник, скомпилированный под одним дистрибутивом, должен работать везде (естественно, учитывая архитектуру - х86 или х86_64). А уж об исходном коде и говорить нечего - все должно быть переносимо.
0
 Аватар для Drus
57 / 57 / 1
Регистрация: 07.10.2011
Сообщений: 203
15.12.2011, 07:37
Цитата Сообщение от mikillskegg Посмотреть сообщение
все должно быть переносимо.
если лежит не на "складе граблей"

Автору и всем по кто по данной теме интересуется - скорее всего нужно сделать так:
1. качаете VIrtualbox или vmware (Виртуальные машины)
2. ставите в них линупс (лучшее убунту, опенсусу, федору.... короче ветку с большим коммьюнити)
3. заходите, изучаете, пробуете(можете полизать и понюхать, когда-нибудь все равно придется)

прошел 1 месяц.....

4.постигаете тонкости переустановки и причины красноглазия....
5. скомпилячилась первая программа "Hello World", система ушла в ребут и более не грузится....

Ну а если серьезно программирования под линупс ничем не отличается от виндозного, так что ставте IDE по типу Netbeans и радуйтесь жизни, а получившийся результат всегда можно скомпилить зайдя через что угодно в папку и написав configure/make(при наличии) или воспользовавшись компилятором
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
15.12.2011, 22:38
Цитата Сообщение от Gepar Посмотреть сообщение
Сдавать мне потом всё в кнопиксе этом лабораторные и я должен быть уверен что всё работает.
для любого дистра исходный код и команды компиляции будут одинаковыми. Зачем тебе вообще заставлять консоль искуственно засыпать, когда в этом нет необходимости. Ты и так запускаешь программу из stdin и наблюдаешь ее работу в stdout, который не умрет пока ты ему этого не прикажешь. Все бинарники (а так же исполняемые скрипты) запускаются так ./filename или так /path/to_file/./filename
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
18.12.2011, 15:31
Цитата Сообщение от Gepar Посмотреть сообщение
либо книги по си, которые якобы под линукс, но на деле просто чистый си.
программирование под линукс -- это и есть си.

мне в свое время весьма понравилась вот эта книга
0
12 / 12 / 0
Регистрация: 31.10.2011
Сообщений: 35
18.12.2011, 21:16
Отличная книжка. То, что надо для начинающего. Хотя некоторые моменты уже устарели.
Когда говорят о программировании для Линукс, то речь не о чистом стандартном Си (который будет работать и на винде, и на маке), а о всяких системных вызовах, специфических линуксовых (или вообще никсовых) библиотеках, об использовании gcc, make, gdb и т.д.
А я сейчас балдею от этой книжки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2011, 21:16
Помогаю со студенческими работами здесь

Как скомпилировать Lammps под windows?
Добрый день! Очень нужна помощь в установке и запуске программы молекулярной динамики LAMMPS под Windows. Программу установил, создал...

Нужно написать программу под Linux
Тема: фильтрация логов трафика, считанных с прокси сервера есть программа на делфи, нужно на си Добавлено через 11 минут вот...

2d Homography. Как скомпилировать эту программу?
#include <stdio.h> #include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include...

Как скомпилировать программу с технологиями openmp?
Доброго времени суток. ОС: Ubuntu 14.04 Пробовал сделать так: g++ -o cyber -lgomp cyber.c Успеха не добился. Попробовал написать...

Скомпилировать exe для windows в linux
Здравствуйте, подскажите пожалуйста, как скомпилировать (если такое возможно) программу в exe из-под linux?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru