· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Microsoft Visual Studio & VCVARS32.BAT

<< . 1 . 2 . 3 . 4 . 5 . 6 .

Посл.отвђт Сообщенiе


Дата: Июл 11, 2004 03:29:04

1) устанавливается VCToolkitInstallDir, если до этого такой переменной не существовало.
"" поставлены потому, с пустой строкой сравнение произвести нельзя, записть if == %var% некорректна.
2) вместо %var% подставляется значение переменной, поэтому здесь, к тому что уже хранится в переменной приписывается справа /nologo /GF ...
4) некоторые переменные устанавливает сама винда, и здесь по ним определяется её версия.
5) path это переменная в которой хранится список путей разделённых ; где DOS искал программы когда к ним не был указан полный путь, в винде это тоже работает, но только в командной строке. Устанавливаем новое значение, если переменная OS не определена.
6) совершено верно
7) Ну а здесь мы к переменной path добавляем еще один путь, а %path% это чтобы не потерять остальные пути(они припишутся в конец)


Дата: Июл 11, 2004 03:53:00

Black_mirror
> 2) вместо %var% подставляется значение переменной, поэтому здесь, к тому что уже хранится в переменной приписывается справа /nologo /GF ...

Какой переменной, самой var? В какой момент подставляется, в момент установки переменной или в момент вызова компиляции, если это для cl.exe?


Дата: Июл 11, 2004 06:01:58

Ещё вопрос, можно ли чем-нибудь продебажить bat'файлы, чтоб посмотреть как заполняются переменные, что в определенный момент находиться в каждой переменной?


Дата: Июл 12, 2004 07:54:14

Asterix
1) ... 6) ...
Black_mirror ответил.

2) ... Какой переменной, самой var? В какой момент ...
В это строке устанавливается значение переменной CL (чтобы не загромождать командную строку), которая используется компилятором (cl.exe), а точнее добавляются ключи к возможно установленным ранее.

3)Set MSSdk=%MSSdk%
Я такого не давал. Где ты это взял?

4) ... 5) ...
Под wnt существует переменная среды OS, 4-ты и 5-тый пункты устанавливают переменные среды в зависимости от ОС.

7) ...
К ответу Black_mirror добавлю, что добавляемый путь специально ставится в начало, чтобы ОС быстрее находила исполняемые файлы.

посмотреть как заполняются переменные
set в файлы.


Дата: Июл 12, 2004 15:41:11

q_q
> В это строке устанавливается значение переменной CL (чтобы не загромождать командную строку), которая используется компилятором (cl.exe), а точнее добавляются ключи к возможно установленным ранее.

Это мне сразу было понятно, не понятен конкретно сам механизм взаимодействия, например с cl.exe.

> 3)Set MSSdk=%MSSdk%
Я такого не давал. Где ты это взял?


Это есть в "родном" bat'нике что лежит изначально в psdk.
Неважно что ты это не давал, мне просто хотелось знать что делает эта строчка.


Дата: Июл 12, 2004 15:50:41

q_q
> В это строке устанавливается значение переменной CL (чтобы не загромождать командную строку), которая используется компилятором (cl.exe), а точнее добавляются ключи к возможно установленным ранее.

Т.е. это было бы для меня прозрачно полностью если бы мы запускали компиляцию так: cl.exe %cl%
Но мы ведь этого не делаем, тогда за счёт чего появляются установленные с помощью set cl=%cl% /nologo ... ключи при вызове компиляции.

ЗЫ: добавил в твой bat'ник третий ключ psdk, и соответствующе изменил сам bat'ник, чтоб при его указании использовались инклуды из psdk.


Дата: Июл 12, 2004 17:08:33

Asterix

„Это мне сразу было понятно, не понятен конкретно сам механизм взаимодействия, например с cl.exe“

getenv, _wgetenv - вот так cl.exe и взаимодействует.

PS: изучайте ДОС.


Дата: Июл 12, 2004 19:02:23

Black_mirror
> getenv, _wgetenv - вот так cl.exe и взаимодействует.

Это не объяснение..

Допустим если вместо set CL=%CL% /nologo /GF /W4 /DNDEBUG /Ox /c
я напишу set AL=%AL% /nologo /GF /W4 /DNDEBUG /Ox /c
в этом случае cl.exe тоже найдёт эти ключи? Если нет, тогда
какими правилами мы руководствуемся выбирая для имени переменной именно CL ?


Дата: Июл 13, 2004 04:23:50

Asterix
добавил в твой bat'ник третий ключ psdk, и соответствующе изменил сам bat'ник, чтоб при его указании использовались инклуды из psdk.
Не понял. Что такое третий ключ psdk? Imho мой bat'ник (vc6.bat) используя psdkvars.bat использует инклуды и библиотеки psdk.

Это не объяснение..
Black_mirror объяснил, каким средством (еще есть GetEnvironmentVariable и т.п.) пользуется cl.exe для получения значения переменной среды CL.

какими правилами мы руководствуемся выбирая для имени переменной именно CL
Из документации. Например, CL Environment Variable(Visual C++ Programmer's Guide).


Дата: Июл 13, 2004 05:09:39 · Поправил: Asterix

q_q
> Imho мой bat'ник (vc6.bat) используя psdkvars.bat использует инклуды и библиотеки psdk.

Ну он у тебя был закомментарен..
Я просто вставил условие:
if not "%3" == "psdk" goto nopsdk
call psdkvars.bat
:nopsdk

Для меня так удобнее :-)


Ладно, вопросов по bat больше нет, спасибо q_q и
Black_mirror за терпеливые разъяснения ;-)


Дата: Июл 13, 2004 05:41:06

Asterix
Ну он у тебя был закомментарен
Исключительно для демонстрации того, что при удалении комментария предупреждения пропадают.

<< . 1 . 2 . 3 . 4 . 5 . 6 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.059