Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как скомпилировать программы на разных языках 
:(
    Опции темы
Fedor
Дата 19.11.2004, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: 1
Всего: 32



Собсно, САБЖ: как скомпилить программу (C++ и PASCAL - это интересно в первую очередь).

Попытался скомпилить программу на C++ (обычный HelloWorld из трех строчек) с помощью make. Вроде получилось. Получился какой-то файл. А как теперь его запустить??? smile smile smile


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
simanyay
Дата 19.11.2004, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 11
Всего: 36



Ну компилить HelloWorld с помощью make это конечно круто smile Для простых прог: g++ HelloWorld.cpp и всё smile Появиться файл a.out. Это и есть прога. Переименую и запускай: ./myProgram. Если файл не запускаемый, то добавь флаг x. Короче вот примерные шаги для проги nomicrosoft.cpp:
Код

$ g++ ./nomicrosoft.cpp # Компилим
$ mv ./a.out ./nomicrosoft # Это можно и не делать. Так для красоты
$ chmod +x ./nomicrosoft # Если он не запускаемый
$ ./nomicrosoft # Запускаем
No Microsoft # Вывод :)


По поводу Pascal'я могу посоветовать FreePascal. Kylix не советую из-за его проприетарности smile Вот такой вот я smile


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Fedor
Дата 19.11.2004, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: 1
Всего: 32



Ага. Понял. Спсб.

З.Ы. А что такое проприетарность? smile


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
simanyay
Дата 19.11.2004, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 11
Всего: 36



Цитата(Morpheus @ 19.11.2004, 22:12)
З.Ы. А что такое проприетарность?

Категории свободных и несвободных программ. Советую почитать.



--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
NightGoblin
Дата 20.11.2004, 03:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: 8
Всего: 11



Хм.. Насколько я знаю, если файл получается не запускаемый - значит, случилась какая-то бяка... Проще это сделать так:

Код

$ g++ mycoolprog.c -o coolprog
(если ничего не пишется - все прошло успешно)
$ ./coolprog
(результат выполнения coolprog)


Если прога на "чистом" C - то вместо g++ используется gcc. Если у тебя модули на разных языках - то скомпилить модуль в объектник из C/C++ тебе поможет флаг -c с необязательным указанием имени объектника - по умолчанию, имя исходника с расширением .o

Линковка, строго говоря, делается при помощи команды ld, но ей надо скармливать такую кучу параметров (если ты, конечно, не пишешь все, используя исключительно системные вызовы), что проще сделать это тем же gcc/g++:

Код

$ g++ main.o interface.o network.o util.o -o program




--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
Artiom
Дата 20.11.2004, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



А чем способ с make отличается? В чем разница и когда его использовать?


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Anklav
Дата 21.11.2004, 03:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 9.12.2003
Где: Менск

Репутация: нет
Всего: 1



Цитата
А чем способ с make отличается? В чем разница и когда его использовать?

В простейшем случаи, каб не компилировать все 1000 исходников, когда изменён был всего один.

Цитата
Утилита make автоматически определяет, какие части большой программы должны быть перекомпилированы и команды для их перекомпиляции
...
Программа make использует информацию из make-файла и время последнего изменения каждого файла для того, чтобы решить, какие файлы нужно обновить. Для каждого обновляемого файла он вызывает соответствующие команды, указанные в make-файле.
(из доки по GNU make)

Это сообщение отредактировал(а) Anklav - 21.11.2004, 03:44
PM ICQ   Вверх
Artiom
Дата 22.11.2004, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Сделал я makefile, потом пишу в консоли make. А мне в ответ
Цитата
Some of required moduls are not available

В чем может быть проблема? Может оно пути не находит в файлам, которые у меня #include? Где их правильно прописать? И где их прописывать если не пользуешься make?


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.