|
|
| Посл.отвђт | Сообщен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 Ну он у тебя был закомментарен Исключительно для демонстрации того, что при удалении комментария предупреждения пропадают. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.059 |