Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

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

09.12.2011, 02:56. Показов 36426. Ответов 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): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru