PMG
http://forum.pmg.org.ru/

Сборка проектов под *nix
http://forum.pmg.org.ru/viewtopic.php?f=4&t=3015
Страница 1 из 1

Автор:  eNrix [ 10 июн 2007 11:27 ]
Заголовок сообщения:  Сборка проектов под *nix

У меня возникла необходимость собрать проект под этой системой.. для начала попробовать собрать простые проекты

как это сделать... если проект состоит из множества файлов... также он должен собирать в статическую или динамическую бибилиотеку(вроде .so) в зависимости от макроса в параметрах проекта

Вроде есть какие-то мудренный файлы makefile - но может можно их генерировать как-то проще...

Автор:  MagicWolf [ 13 июн 2007 12:50 ]
Заголовок сообщения: 

Насчет IDE под unix я не знаю, а так действительно через makefile.

Автор:  R_Ambersky [ 30 июн 2007 01:22 ]
Заголовок сообщения: 

Сам мучился с make-файлами, но можно проще!
Пишешь скрипт для http://www.cmake.org Утилита Cmake создаёт по этому скрипту make-файл и запускает его компиляцию...

Автор:  MagicWolf [ 02 июл 2007 12:58 ]
Заголовок сообщения: 

А IDE на это дело нету по linux ?

Автор:  wingman [ 14 авг 2007 01:28 ]
Заголовок сообщения: 

makefale можно создавать автоматически (так же, как скрипт configure и т.п.), см. в сторону программы "automake".

В статическую (.o) или динамическую (.so) библиотеку проект компилируется только если ты сам ему это укажешь.

Чтобы компилировать n-ное количество файлов в одном проекте, нужно каждый указывать в Makefile.

Автор:  MagicWolf [ 14 авг 2007 10:45 ]
Заголовок сообщения: 

Все равно это все муторно.

Автор:  wingman [ 14 авг 2007 11:27 ]
Заголовок сообщения: 

MagicWolf писал(а):
Все равно это все муторно.


;)))

А для меня, например, глюки венды - муторно. О вкусах не спорят =)


Может, кому пригодится - приведу простой пример Makefile:

Код:
TARGET=test
LIBS ="-lgl -lglu -lmysqlclient"
CFLAGS = -O3 -Wall
CC = g++


all:
   $(CC) $(CFLAGS) $(INCLUDE) -c test.cpp -o test.o
   $(CC) -o $(TARGET) test.o $(LIBS)
clean:
   rm *.o
   rm $(TARGET)

TARGET - имя бинарника на выходе
LIBS - библиотеки, перед каждой ставится "-l". В данном случае библиотеки OpenGL и mysql.
CFLAGS - доп. флаги для компилятора. В данном случае указали, что у нас 2 процессора и Wall - флаг оптимизации.
CC - название компилятора.

Теперь набираем "make all" и выполняется то, что в секции "all:",
набираем "make clean" и выполняется подчистка.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/