Форум » GUI » Ключи /Z с /MT в Compile.bat - ошибка » Ответить

Ключи /Z с /MT в Compile.bat - ошибка

SkyNET: Здравствуйте ! Решил использовать мультпоточность в распаковщике архивов. Используется этот код: [more][pre]nLen := LEN(HB_GetFilesInZip(M->cPubPathToZip))-1 ChangeStatus("Чтение архива","1/"+ALLTRIM(STR(nLen)),.F.) UNCOMPRESS(M->cPubPathToZip); EXTRACTPATH M->cPubPathToInstall; BLOCK {|cFile, nPos| SetStatusBar( nPos, cFile, nLen ) } ; CREATEDIR[/pre][/more] Для компиляции через MiniGUI\BATCH\Compile.BAT использовал ключ /Z. Всё было хорошо, пока не решил подключить мультипоточность через ключ /MT. Параметры компиляции: Compile.BAT main /MT /Z При этом выдаётся ошибка: [pre2]Error: Unresolved external '_errno' referenced from Z:\MINIGUI\HARBOUR\LIB\ZIPAR CHIVE.LIB|zipfile Link error.[/pre2] Но если убрать ключ /MT, то всё прекрасно компилируется. В чём проблема ?

Ответов - 6

Петр: SkyNET пишет: В чём проблема ? Обратитесь к разработчику библиотеки, пускай он вышлет вам ZIPARCHIVE.LIB скомпилированую с поддержкой multithread.

Andrey: А у меня точно такая же ошибка появляется, только я просто пример собираю под HBMK2: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_errno' referenced from С:\MINIGUI\HARBOUR\LIB\ZIPARCHIVE.LIB|zipfile hbmk2: Error: Running linker. 2 Версия МиниГуи свежая, -1 всего... В смысле 2.0.4 Мой файл сборки для hbmk2: test.hbp # Incremental-режим компиляции -inc # папка где будут все *.obj -workdir=OBJ # Имя EXE-модуля -oTest_Zip4.exe # включить путь к MiniGui и своим *.ch и *.fmg -incpath=С:\MiniGUI\Include -incpath=Include -incpath=Source # перечисляем все *.prg Source\main.prg # Ресурсы Resource\test.rc # Пути к основным и добавочным *.lib -lminigui -lziparchive -LС:\MiniGUI\LIB\ Пример простой, там вызов функции есть: UNCOMPRESS(M->cPubPathToZip); EXTRACTPATH M->cPubPathToInstall; BLOCK {|cFile, nPos| SetStatusBar( nPos, cFile, nLen ) } ; CREATEDIR На батнике все нормально компилируется, а в проекте нет. Подскажите где что править ?

Avf: Как была решена проблема ?


Andrey: Avf пишет: Как была решена проблема ? Я у себя решил в файле МойПроект.hbp : # Включить multi/single-thread Harbour VM -mt И не указывал какую либу линковать, линкер сам находит и собирает. Нормально ехе-ник работает.

Avf: Вместо ziparchive.lib нужно прилинковать hbziparc.lib,hbmzip.lib,minizip.lib,zlib.lib и zlib1.lib ( например, в Mpm или Compile.bat ).

Andrey: Avf пишет: Вместо ziparchive.lib нужно прилинковать hbziparc.lib,hbmzip.lib,minizip.lib,zlib.lib и zlib1.lib ( например, в Mpm или Compile.bat ). Да уже давно сделано. В другой теме об этом писал.



полная версия страницы