В общем такая история. Решил почитать на досуге петцольда, программирование для вин 95. Подумал,может авось чтото новому и научусь. И прадва. На 20 странице автор предлагает использовать nmake которым я никогда не пользовался. В общем есть исходники на с на вин апи без проетка. Он предлагает пользоваться nmake чтобы собрать их. А у меня ничего не получается.
http://slil.ru/27794667 Вот исходники. В батнике регистрируются глобальные переменные среды выполнения. При запуске nmake пишет вот что. NMAKE : fatal error U1077: '.\cl.exe' : return code '0xc0000135' Что это? Не могу собрать исходник
Во первых ещё в батник нужно добавить пути к Include и Lib папкам. SET INCLUDE=%INCLUDE%;далее через ";" перечисляем пути к Include папкам, в которых лежат необходимые заголовочные файлы. SET LIB=%LIB%;далее через ";" перечисляем пути к Lib папкам, в которых лежат необходимые библиотеки. Во вторых вызов nmake нужно добавить в сам батник, так как переменные окружения действуют только в сессии батника.
Да и в PATH необходимо добавить путь где лежат компилятор и линковщик. У меня например так: PATH=%PATH%;D:\Coding\VC++\Microsoft Visual Studio .NET 2003\Vc7\bin
просто сделай еще один батник call "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" (здесь может быть другой путь) call E:\downloads\CHAP02\msc.bat (и тут тоже) call nmake hellowin.mak
В общем прописал через консоль комманду set , указал include и указал путь до своих инков. ТЕперь получаю такую ошибку C:\_Program_\Microsoft Visual Studio 8\VC\bin>nmake hellowin.mak Microsoft (R) Program Maintenance Utility Version 8.00.50727.42 Copyright (C) Microsoft Corporation. All rights reserved. -OUT:hellowin.exe hellowin.obj Синтаксическая ошибка в имени файла, имени папки или метке тома. NMAKE : fatal error U1077: '-OUT:hellowin.exe' : return code '0x1' Stop. Номер U1077 Описание Visual C++ Concepts: Building a C/C++ Program NMAKE Fatal Error U1077 Error Message 'program' : return code 'value' The given command or program called by NMAKE failed and returned the given exit code. To suppress this error and continue the NMAKE session, use the /I option, the .IGNORE dot directive, or the dash (-) command modifier. To continue the NMAKE session for unrelated parts of the dependency tree, use the /K option Не пойм что от меня хотят, что петцольд в параметрах ошибся чтоль?
ЭЭЭЭЭ..... изивини, я чёт ничего не понимаю. Просто нету опыта с этим делом. Что посоветуеш почитать по nmake. А то мне чёт не очень понятно. Где формат его файла, описание, как с ним работать Пока что собрался только объектик #------------------------ # HELLOWIN.MAK make file #------------------------ (*)hellowin.exe : hellowin.obj $(LINKER) $(GUIFLAGS) /OUT:hellowin.exe hellowin.obj $(GUILIBS) (*)hellowin.obj : hellowin.c $(CC) $(CFLAGS) hellowin.c Непонятны строки помеченные звёздочками мной. Они разве что то говорят nmake. И почему сначала указана первой линковка, если сначала нужно компилить и не линковать?
Балин, но я же написал - "вставь вызов nmake в батник msc.bat!", в самый конец. nmake hellowin.mak. И установку переменных PATH, LIB, INCLUDE тоже в батник!. Читай в MSDN. Порядок не важен. Есть правила и они выполняются не зависимо от порядка строк. hellowin.obj : hellowin.c - Это строка(правило) говорит, что нужно получить на выходе hellowin.obj, и говорит что для этого нужен hellowin.c(зависимость). А как это правило реализовать - строкой ниже.
Ага понял. Только теперь вот такое Как в студии эту ошибку исправить я знаю. Нужно указать ручка проету гже либы лежать и добавить. А ут через консоль не знаю что дельше НУжно слинковать правильно
ajak Либы перечисляются в батнике: SET GUILIBS=-DEFAULTLIB:user32.lib gdi32.lib winmm.lib comdlg32.lib comctl32.lib Если пути к папкам либ указы верно, то они должны прилинковаться. Покажи полный вывод сообщений, предварительно удалив HELLOWIN.obj. Кстати, у тебя этот HELLOWIN.obj в папке bin случайно не остался?
Всё, спасибо, получилось, единственное не могу понять почему когда я запускаю батник и после того он сработал, захожу в новую консоль а там при выполнении set нету тех переменных окружений, которые я только установил, они как то быстроисчезают и существуют только в той консоли в которой создал. КАк их на постоянку забить.
Я уже писал, что переменные работают в сессии. Если в одной сессии установить переменные и выйти из неё, то естественно всё пропадёт. Также переменные наследуются дочерними сессиями. А чтобы было постоянно, установи в основной сессии - "Мой компьютер/Свойства/Дополнительно/Переменные окружения."
класс, так и понял. Только не знал где эти переменные установить, теперь можно вздохнуть и продолжать читать петцольда