Форум » [x]Harbour » Проблема при сборки *.LIB » Ответить

Проблема при сборки *.LIB

Andrey: Всем привет ! Собираю чужой проект из Клипера на хХарбор. Там используется при сборке библиотеки *.LIB Собрал аналогично под хХабором используя ключ HBMAKE myLib.bc -elx Только при сборке выдает такую фигню: Z:\BCC55\BIN\tlib /P32 /0 NewOv53h.lib @makefile.lnk TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation +-ObjLib\ANY_LEN.obj & +-ObjLib\ARRAYS.obj & +-ObjLib\ARRFIELD.obj & ............. Warning: 'ANY_LEN' not found in library Warning: 'ARRAYS' not found in library Warning: 'ARRFIELD' not found in library ......... Конец лог-файла Библиотека собралась, но правильно или нет пока не могу понять.... В чем дело, почему пишет что модуля нет в библиотеке ? И еще, про ключи сборки HBMAKE: Кто может, расскажите в чем еще разница ? И что нужно для меня в текущем случае ? -el Open the editor mode for creating libraries. -elx Open the editor mode for creating libraries in extented mode.

Ответов - 21, стр: 1 2 All

PSP: Andrey пишет: +-ObjLib\ANY_LEN.obj & +-ObjLib\ARRAYS.obj & +-ObjLib\ARRFIELD.obj & "+-" перед именем модуля означает, что TLib должен заменить этот модуль в библиотеке. Попробуй вместо "+-" просто "+" использовать, а файл .lib перед сборкой удаляй.

Andrey: Знак "+-" ставит сам HBMAKE (он каждый раз генерирует makelib.lnk), и дело не в нем. Я удаляю библиотеку, удаляю obj-файлы, и при первой же сборке библиотеки получаю кучу : Warning: 'ANY_LEN' not found in library ....... Хотя сама библиотека собирается newov53h.lib - 522752 байт. В чем дело, почему пишет что модуля нет в библиотеке ?

PSP: Andrey пишет: В чем дело, почему пишет что модуля нет в библиотеке ? ИМХО потому, что файл newov53h.lib на момент сборки отсутствует. А TLib пытается заменить модуль в еще не существующей библиотеке.


Andrey: Так получается, что библиотека нормально собирается ?

PSP: Думаю, да.

Andrey: Спасибо за разъяснения. Собрал библиотеку. Если кому интересно, то можно собирать не ручками (писать BAT-ник), а через HBMAKE ! Заталкиваем все ИСХОДНИКИ в папку PRG (или другую), ресурсы (если надо), получается: PRG RES Далее в корне здесь даем команду: HBMAKE myLib.bc -el -r где: -el (собрать LIB), а -r (прочитать папки)

Uncle_ed: Закачал новую версию Habour 2.0 и обнаружил, что потерял свою собственную библилтеку super.lib Раньше собирал как-то ее на старой версии, а теперь не получается. Запутался совсем без русского описания. HBMAKE почему-то теперь нет Появился какой-то HBMK2 , но у него ключи другие. Как теперь быстро и без заморочек собрать библиотеку взяв все PRG расположенные в одной папке ? Исходников много и в ручную перебирать их все не хочется.

Dima: Uncle_ed Например так hbmk2 -omylib -hblib mysrc1 mysrc2 если исходных файлов не много Если много , можно заюзать Hbc файлик для сборки. Как то так.

Vlad04: Я с библиотекой работаю так.В билиотеке собираются общеупотребительные функции. Я их отлаживаю на практически рабочем варианте одной из программ. При этом, при сборке obj, которые создаются не удаляю.Если все изменения отлажены, то просто с obj собираю Lib. TLIB.EXE MyV +fg_menu.obj+fget.obj+nastr.obj+ ^ OBSCH_PR.obj+pe51.obj+prnt_05.obj + fileread.obj +fuks.obj А файлы собрать просто . Это часть prg aDir :={} aDir := Directory(mask) clear SET PRINTER to Repl_file.txt ; SET DEVICE TO PRINTER ; SET PRINTER ON for i = 1 to Len(aDir) ?aDir[i,1] next SET DEVICE TO SCREEN; SET PRINTER off; SET PRINTER TO

Uncle_ed: Dima файлов у меня порядка 40. файл hbc это просто список ? Сделал список и попробовал просто набрать hbmk2 super.hbc ни чего не получилось. Может из-за того, что среди файлов asm попадаются ? как с ними быть ? Vlad04 Я обычно через обычную ДОСовскую команду dir делаю список - это проще и быстрее чем писать программу. OBJ файлов пока нет. Библиотеку создавал и отлаживал черт знает когда, еще в 90е года под Клиппером.

Dima: Uncle_ed пишет: файл hbc это просто список ? Нет.

Петр: Uncle_ed пишет: что потерял свою собственную библиотеку super.lib Это ваша собственная или "стандартная" SuperLib 3.5 http://www.the-oasis.net/files/library/supfree.zip Если "стандартная", то как ее собрать описано в harbour\examples\superlib\ Там же и hbc и другие нужные файлы.

Петр: И для сборки используют файлы hbp (см. ниже). hbc чаще используют для задания общих параметров, подключения библиотек к проекту и т.д. # # $Id: superlib.hbp 12288 2009-08-23 15:06:11Z vszakats $ # -hblib -olib/${hb_plat}/${hb_comp}/super -inc -q0 -w1 -es2 -l hbsuper.prg between.c mline.c nextls.c s_scrbuf.c curd.prg r_hcode.prg r_printr.prg r_quikr.prg r_report.prg ..

Uncle_ed: Петр это моя собственная библиотека. Где-то год назад я ее легко собрал под Harbour, а вот теперь так просто не получается. Старею наверное. Спасибо за помощь. Попробую с примером разобраться.

Zakrzevky: есть каталог ..hb2\source\harbour2.0.0\contrib\rddads и файлы makefile ads1.c adsfunc.c adsmgmnt.c adsx.c ads.ch adsextrn.ch rddads.h unixutuils.h rddads.hbc есть еще ace32.lib (пересобрал через implib) для Ads8.0 хочется пересобрать rddads.lib тоже версии ADS8.0 как сделать? Через hbmk2 или писать скрипт? В общем обычная пересборка стандартного lib Может кто подскажет. че-то не получается

Andrey: Zakrzevky пишет: Через hbmk2 или писать скрипт? Могу через hbmake.exe - 1 минута и готово !

Zakrzevky: Если можно plz. а то некогда уже разбираться

Петр: С чем там разбираться, установите переменные среды и вызовите make примерно так set PATH=C:\Borland\BCC55\Bin;%PATH% set HB_INSTALL_PREFIX=c:\harbour-bcc\ set HB_WITH_ADS=C:\ads\acesdk win-make install

Andrey: Zakrzevky пишет: Если можно plz. а то некогда уже разбираться Смотри описание hbmake (там все ключи и как пользоваться): http://clipper.borda.ru/?1-4-30-00000515-000-0-0-1267900828

Sikambr: Петр пишет: Это ваша собственная или "стандартная" SuperLib 3.5 http://www.the-oasis.net/files/library/supfree.zip Если "стандартная", то как ее собрать описано в harbour\examples\superlib\ Там же и hbc и другие нужные файлы. Не получается откомпилировать SuperLib. Исходники бибилиотеки (source.zip) распаковал в examples\superlib Запускаю hbmk2 superlib.hbp, что-делается и пишет "hbmk2: Error: Running Harbour compiler (embedded). 1". Если проигнорировать, и компилить мою программу, то пишет "ld.exe: cannot find -lsuper" PS Использую harbour-2.0.0-win.exe

Sikambr: Разобрался. Перед компиляцией не запустил patch. Сижу под Виндой, об этой программе и не слышал. Выкачал, запустил, откомпилил!



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