информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Страшный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 TeamViewer обвинил в своем взломе... 
 Docker Hub закрыл доступ из России 
 Google заблокировала 2 с лишним... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[VC++ Linker] Ага 11.12.03 17:05  Число просмотров: 1915
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 11.12.03 17:07  Количество правок: 2
<"чистая" ссылка>
> Проблема в том что я ничего в формате makefile не
> соображаю, но как я подозреваю, для переключений EXE
> придется уже менять не макрос а строчку в makefile?
Да, там есть свои переменные и условная компиляция. Лушче всего сделать название результирующего файла сделать переменной.

Синтаксис очень подробно описан в MSDN. Лучше взять готовый (VC6 умеет экспортировать проекты в makefile-ы, в VC.Net я этого не нашел) и подредактировать немного. Там все понятно в принципе

Синтаксис:
цель: цели-зависимости
    команда1
    команда2
.... и так далее

---
Цель - это как подпрограмма в языке программирования. Целью может быть как файл так и произвольное название (почти произвольное). Если у собираемой цели есть цели-зависимости, то сначала собираются они (рекурсивно). А сам процесс сборки цели описывается командами. Команды обязательно должны иметь отступ. Если его нет - то это уже новая цель.

Когда делаешь
nmake -f Makefile
то бишь не указываешь цель явно, то собирается цель all

Замечу, что при такой сборке лучше в VC.Net при создании проекта явно указывать "Makefile Project". Тогда проект можно будет все так же собирать из IDE, но собираться он будет внешней командой (в данном случае nmake).

Короче выглядеть это будет примерно так

Строчку
ALL : "$(OUTDIR)\test.exe"

---

заменяем на
CONFIG=1
!if "$(CONFIG)"=="1"
TARGET=$(OUTDIR)\test1.exe
!else
TARGET=$(OUTDIR)\test2.exe
!endif

ALL: "$(TARGET)"

---

Остальное оставь без изменений. Можешь включить этот Makefile в свой проект и менять номер конфигурации прямо там. Это не труднее, чем переопределение макроса. Также можно вызывать это следующим образом:

nmake -f Makefile CONFIG=2

В общем, для начала сведений достаточно. Дальше MSDN в зубы и вперед на мины :-) Там на самом деле не все так сложно как кажется сначала.

ЗЫ: Вот нашлась и вторая причина по которой я не хочу пересаживаться на VC.Net - не умеет экспортировать Makefile-ы. Первая была, что он не умеет импортировать ключи для компилятора прямо в проект. То есть умеет, но он не строит на их основе новые настройки для проекта, а просто принимает и ничего с ними не делает и в то же время не дает ничего сделать с уже сгенеренными (как в VC6)
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach