Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Evg
Эксперт CАвтор FAQ
18032 / 6264 / 427
Регистрация: 30.03.2009
Сообщений: 17,218
Записей в блоге: 27
#1

Несколько целей из одного набора исходников в графических средах - C++

21.09.2009, 13:17. Просмотров 1316. Ответов 16
Метки нет (Все метки)

Имеется некий набор исходников, из которых собираются несколько разных программ. Программы собираются из пересекающегося множества исходников, но с различными опциями. В юниксе для этого используются Makefile'ы и приказы "make" с различными целями. Можно ли что-то подобное делать в графических оболочках (Borland Builder, MSVS)?

Например, есть файлы t1.c t2.c t3.c из которых собираются программы prog1 и prog2. Сборка делается так:
Код
$ gcc t1.c t3.c -DPROG1 -o prog1
$ gcc t2.c t3.c -DPROG2 -o prog2
Т.е. программы имеют уникальный исходник (который используется только в этой программе), общий исходник (который используется в нескольких исходниках) и при этом компиляются с разными преодпределёнными макросами (чтобы в каких-то мелких деталях в общих исходниках уметь отличать одну программу от другой)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2009, 13:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Несколько целей из одного набора исходников в графических средах (C++):

Есть несколько исходников с расширением *.s с ассемблерным кодом, как из них получить exe? - Visual C++
Помогите разрешить следующую проблему: есть несколько исходников с расширением *.s с ассемблерным кодом, из которых в visual studio хочу...

Составить программу покрытия таблицы соответствующими доминошными костями из одного набора - C++
Элементами заданной прямоугольной таблицы являются числа от 0 до 6.Составить программу покрытия таблицы соответствующими костями из 1-го...

Несколько целей - Prolog
domains name=symbol age=Integer predicates person (name,age) mother(name,name) father(name,name) male(name) female(name)

Вывести один или несколько графических элементов - Free Pascal
1. Очистить экран монитора и при необходимости установить желаемый цвет фона. 2. Вывести один или несколько графических элементов...

Вывести один или несколько графических элементов (отрезков, прямоугольников, кругов, эллипсов) - Pascal ABC
1. Очистить экран монитора и при необходимости установить желаемый цвет фона. 2. Вывести один или несколько графических элементов...

Как отобразить два графика из одного набора данных? - C#
Прошу помощи в маленькой проге. Архив с проектом выкладываю. На форме 8 текстбоксов и кнопка построить график. Надимаем на кнопку и в...

16
RazorQ
578 / 345 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
21.09.2009, 13:26 #2
Для визуал студиа есть утилита nmake. Работает с файлами проэктов *.mak, но я сам никогда не пользовался
0
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
21.09.2009, 13:36 #3
Цитата Сообщение от Evg Посмотреть сообщение
Можно ли что-то подобное делать в графических оболочках (Borland Builder, MSVS)?
В Builder'e (как и везде, по-моему) есть возможность задействовать дерективы препроцессора.
C++
1
2
3
4
5
6
7
# (null directive)  #ifdef
#define #ifndef
#elif   #import
#else   #include
#endif  #line
#error  #pragma
#if #undef
Или речь идет не об этом?...

А каждый проект настраивается изменением опций.
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,389
21.09.2009, 13:41 #4
В Visual Studio есть такая штука - "решение", или solution; решение может содержать несколько "проектов" (project); каждый проект может включать как общие файлы *h, *.c, *.cpp, так и уникальные для него (физическое расположение файлов на диске не имеет значения). Можно устанавливать зависимости между проектами аналогично makefile'ам, что определит порядок сборки.
Файл описания решения (*.sln) может автоматически обрабатываться билд-роботом (например, DevGuy's).

В общем, проблем никаких - "все как в Linux, только немного иначе выглядит" )
1
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
21.09.2009, 13:42 #5
Evg,
создаешь новый Solution, в нем создаешь несколько пустых проектов Console Application (по числу программ)
в каждый проект добавляешь свои файлы и уникальные опции. Далее Build Solution. Всё.
1
Evg
Эксперт CАвтор FAQ
18032 / 6264 / 427
Регистрация: 30.03.2009
Сообщений: 17,218
Записей в блоге: 27
21.09.2009, 13:49  [ТС] #6
А в borland есть что-то подобное?

Добавлено через 30 секунд
Цитата Сообщение от АНК Посмотреть сообщение
Или речь идет не об этом?...
Не об этом
0
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
21.09.2009, 16:01 #7
Цитата Сообщение от Evg Посмотреть сообщение
А в borland есть что-то подобное?

Добавлено через 30 секунд


Не об этом
А че не об этом? Как раз об этом. Разные дефайны в разных проджектах и на выходе будем иметь разные обдж файлы (в уникальных для проджекта директориях)
0
Evg
Эксперт CАвтор FAQ
18032 / 6264 / 427
Регистрация: 30.03.2009
Сообщений: 17,218
Записей в блоге: 27
21.09.2009, 16:03  [ТС] #8
Alexandoros, почитай пост #3. Кроме попыток объяснить, как устроены макросы, я вообще ничего не увидел (или не понял). И почитай посты #4 и #5 где есть конкретно описанный порядок действий
0
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.09.2009, 16:17 #9
Evg, в Visual Studio я такой штуки не видел.
Но как тебе уже сказали - там есть nmake,
также Visual Studio умеет генерировать Makefile-ы для проекта.
Так что можно сделать все через теже самые Makefile-ы.
0
Evg
Эксперт CАвтор FAQ
18032 / 6264 / 427
Регистрация: 30.03.2009
Сообщений: 17,218
Записей в блоге: 27
21.09.2009, 17:21  [ТС] #10
Цитата Сообщение от odip Посмотреть сообщение
Evg, в Visual Studio я такой штуки не видел
А посты #4 и #5 это тогда что?
0
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.09.2009, 17:31 #11
Это было и раньше - когда в Visual Studio не было никаких solution.
Можно было собрать несколько exe-файлов/lib-файлов из одного проекта,
причем с зависимостями между ними.
Просто это все насколько я понимаю статически.
То есть например, если файл включен в сборку и чтобы поменять это нужно редактировать solution.

Я имею в виду что сборка через Makefile все равно более гибкое решение.
Можно например определить разные цели в Makefile - и делать разные сборки.
0
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
23.09.2009, 13:14 #12
Короче, в студии для каждого проджекта можно создать немеряно конфигураций, каждая из которых может делать ну просто абсолютно разные вещи ( вплоть до форматировіания винта ). И есть команда Build - Batch build, которая позволяет билдить выбраные конфы(билды) за одно нажатие. Конфы создаются в Build - Configuration manager,
0
Evg
Эксперт CАвтор FAQ
18032 / 6264 / 427
Регистрация: 30.03.2009
Сообщений: 17,218
Записей в блоге: 27
23.09.2009, 13:50  [ТС] #13
Цитата Сообщение от Alexandoros Посмотреть сообщение
Короче, в студии для каждого проджекта можно создать немеряно конфигураций, каждая из которых может делать ну просто абсолютно разные вещи ( вплоть до форматировіания винта ). И есть команда Build - Batch build, которая позволяет билдить выбраные конфы(билды) за одно нажатие. Конфы создаются в Build - Configuration manager,
Ты можешь конкретно сказать куда нажать и что писать?
0
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
23.09.2009, 13:59 #14
Build - Configuration manager - создаеш методом копирования новую конфу.
Project - properties - configuration - выбираеш свою конфу, менеш в пропертях все что хочеш.
Build - Configuration manager - active solution configuration - своя конфа.
Билдь.

Build - Batch build - для билда нескольких конфигураций за раз.
1
Evg
Эксперт CАвтор FAQ
18032 / 6264 / 427
Регистрация: 30.03.2009
Сообщений: 17,218
Записей в блоге: 27
23.09.2009, 15:05  [ТС] #15
Это для чего? ДЛя MSVS или Borland?
0
23.09.2009, 15:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2009, 15:05
Привет! Вот еще темы с ответами:

Создать несколько графических окон, постепенно всплывающих на рабочем столе по окружности, меняя цвет - Matlab
необходимо создать несколько графических окон, постепенно всплывающих на рабочем столе по окружности,меняя цвет

Создайте еще несколько новых графических процедур, которые бы расширили возможность стандартной библиотеки. - Pascal ABC
Создайте еще несколько новых графических процедур, которые бы расширили возможность стандартной библиотеки (ромб, параллелограмм, и т.п.)...

Hibernate и одновременное редактирование одного набора данных двумя пользователями. - Java
Щупаю Hibernate 2.1.6 На сколько я понял, каждый раз, когда говорим Session.save(...), кеш обновляется значениями из переданного...

Поиск одного общего значения в таблице для набора аргументов - SQL Server
Всем доброго времени суток ! Нужна ваша помощь в решении вопроса. Есть две таблицы A ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru