monday2000
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AndyZ Не получается создать lib-файлы из исходников WinDjView 0.4. Ни под Win98, ни под Win2000. Использую одну и ту же команду: Цитата: nmake "DEBUG=1" "UNICODE=0" /f makefile | (находясь в папке WinDjView-0.4\libdjvu) Win98: Цитата: IFFByteStream.cpp(71) : fatal error C1034: assert.h: no include path set IW44EncodeCodec.cpp DjVuGlobal.h(73) : fatal error C1034: new.h: no include path set IW44Image.cpp | Это у меня, видимо, какая-то системная переменная не прописана. Path = "C:\Program Files\Microsoft Visual Studio\VC98\Bin" я руками прописал в autoexec.bat. Надо что-то ещё прописать? Win2000: Здесь я при инсталляции MS VC++ 6.0 сразу указал зарегистрировать переменные среды - и проблем типа "no include path set" не возникает уже. Но тут своё: Цитата: GRect.cpp(276) : warning C4244: 'return' : conversion from '__int64' to 'int', p ossible loss of data GRect.cpp(278) : warning C4244: 'return' : conversion from '__int64' to 'int', p ossible loss of data GRect.cpp(287) : warning C4244: 'return' : conversion from '__int64' to 'int', p ossible loss of data GRect.cpp(289) : warning C4244: 'return' : conversion from '__int64' to 'int', p ossible loss of data | Цитата: Generating Code... LIB : fatal error LNK1104: cannot open file "..\Debug_Unicode\libdjvud.lib" NMAKE : fatal error U1077: 'lib' : return code '0x450' Stop. | В обоих ОС успевает сгенериться некоторое количество obj-файлов при этом. Да, ответьте, пожалуйста, на дурацкий вопрос - в чём разница между "Debug" и "Release"? Всю жизнь ломаю над этим голову. И зачем мэйкфайлу указывать "UNICODE=0" или "UNICODE=1" - чем либы будут отличаться и есть ли подобный "Уникод-выбор" в "родной" последней DjVuLibre? Добавлено: AndyZ Цитата: Ну или проекты, если они Вам больше нравятся. | Да, хотелось бы уйти от компиляции lib-файлов, а просто понаделать dsw-проекты для каждого (для которого получится) консольного приложения на http://djvulibre.djvuzone.org/doc/index.html . Наверное, так сложнее тем, что потребуется включить в dsw-проект уйму других файлов (тех, из которых либы компилятся), но зато сохранится максимальная прозрачность и можно будет в любом dsw-проекте сразу прыгнуть на определение любой функции. Один разок помучаться и составить эти dsw-проекты, а потом просто уже открывать и подправлять, как кому надо, добавлять там свои cpp-файлы, или менять существующие. Добавлено: В общем, взял я исходники djvulibre-3.5.16 и пытаюсь в лоб скомпилировать cjb2.cpp. Открыл его, компильнул в djvulibre-3.5.16\tools файл cjb2.cpp, создался dsw-проект, прописал в Tools - Options - Directories include-путь "C:\DJVU\DJVULIBRE-3.5.16\LIBDJVU". Теперь cjb2.cpp успешно компилируется, но экзешник, разумеется, пока не билдится. Подскажите, что надо сделать. Выдаются такие ошибки: Цитата: --------------------Configuration: cjb2 - Win32 Debug-------------------- Linking... cjb2.obj : error LNK2001: unresolved external symbol "public: __thiscall GArrayBase::~GArrayBase(void)" (??1GArrayBase@@QAE@XZ) cjb2.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall GException::~GException(void)" (??1GException@@UAE@XZ) cjb2.obj : error LNK2001: unresolved external symbol "public: static void __cdecl GExceptionHandler::exthrow(class GException const &)" (?exthrow@GExceptionHandler@@SAXABVGException@@@Z) cjb2.obj : error LNK2001: unresolved external symbol "public: __thiscall GException::GException(char const * | Ну и так далее. Пытаюсь добавлять в проект "Project" - "Add to project" - "Files" наугад cpp-файлы из "C:\DjVu\djvulibre-3.5.16\tools" - такие, где windows-поиском можно найти имена из списка ошибок unresolved external symbol. Надо ли включать ещё и одноимённые (соответствующие) h-файлы при этом? (Или нужные заголовки функций уже сидят в каком-нибудь большом уже подключённом h-файле?) А то, чем больше я добавляю cpp-файлов, тем больше ошибок unresolved external symbol. Подскажите пожалуйста, что надо сделать, чтобы получить cjb2.exe таким способом (не создавая заранее свои lib-файлы). То есть, правильно ли я действую? Просто я ещё не успел до конца так дойти - ошибок-то всё больше и больше. А дальше, если разберусь, уже буду сам пробовать другие экзешники сделать - по аналогии. То есть важно не просто сделать экзешники, а именно составить dsw-файлы для каждого из них - чтобы юзер потом запустил dsw-файл, нажал пункт "Rebuild all" и всё, и получил Windows-экзешник (ну там include-пути прописать самое большее чтобы ему). | Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 11:43 08-02-2006 | Исправлено: monday2000, 12:18 08-02-2006 |
|