Форум » GUI » Ошибка при сборке проекта ? » Ответить

Ошибка при сборке проекта ?

Andrey: Собираю кусочек большого проекта. В проекте 4 файла + цепляем библиотеку из большого проекта - TBRW_TABLE2.LIB При сборке выдаёт вот такую ошибку: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN__SHOWCONTEXTMENU' referenced from W:\HB_PROJECT\ABON4PRJ\ кракозябы \TBRW_TABLE2.LIB|util_Word hbmk2[opl_import]: Error: Running linker. 2 Смотрю в большом проекте модуль util_Word.prg там есть вызов функции [pre2] _ShowContextMenu(cForm, , , .F. ) // ПОКАЗ ВЫПАДАЕЩЕГО МЕНЮ [/pre2] Но только с одним знаком "_". Почему Unresolved external '_HB_FUN__SHOWCONTEXTMENU' - с двумя знаками "__" ? Как исправить ошибку сборки ?

Ответов - 15

Pasha: _HB_FUN_ - это стандартный префикс, который генерирует компилятор, для всех харбор-функций. Т.о, первый "_" получается из префикса, а второй - из имени функции. А исправить ошибку сборки надо обычным способом - подключить все необходимый модули, а особенно тот, который содержит саму функцию _ShowContextMenu

Andrey: Pasha пишет: а особенно тот, который содержит саму функцию _ShowContextMenu Спасибо Паша ! Блин часа два убил на это, считая что функция _ShowContextMenu уже есть в проекте... Оказалась, что нет. Смутили два знака "__" !

Andrey: Всем привет. Что то перестала работать команда C:\MiniGUI\BATCH\Compile.Bat test.prg Выдаёт такую ошибку: [pre2]Harbour 3.2.0dev (r2011030937) Copyright (c) 1999-2020, https://harbour.github.io/ Compiling 'Test.prg'... Lines 25906, Functions/Procedures 7 Generating C source output to 'Test.c'... Done. Test.c: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_BT_CLIENTAREAINVALIDATERECT' referenced from C:\MINIGUI\LI B\MINIGUI.LIB|h_progresswheel Error: Unresolved external '_HB_FUN_BT_BITMAPCREATENEW' referenced from C:\MINIGUI\LIB\MINIGUI .LIB|h_progresswheel Error: Unresolved external '_HB_FUN_BT_CREATEDC' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h_ progresswheel Error: Unresolved external '_HB_FUN_BT_DELETEDC' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h_ progresswheel Error: Unresolved external '_HB_FUN_BT_DRAWFILLELLIPSE' referenced from C:\MINIGUI\LIB\MINIGUI .LIB|h_progresswheel Error: Unresolved external '_HB_FUN_BT_DRAWTEXT' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h_ progresswheel Link error.[/pre2] Что нужно добавить/исправить для успешной сборки ? [img class=smile" src=/gif/smk/sm33.gif] Использую последнюю версию МиниГуи, но для линковки у меня BCC 5.5 Исправляю строку в Compile.Bat [pre2] if not defined MG_BCC set MG_BCC=c:\Bcc55[/pre2]


Петр: Andrey пишет: Что нужно добавить Прилинковать библиотеку BosTaurus подсказка в именах функций - префикс BT_ BT_CLIENTAREAINVALIDATERECT BT_BITMAPCREATENEW и т.д.

rvu: Andrey пишет: Использую последнюю версию МиниГуи, но для линковки у меня BCC 5.5 А почему 5.5?

Andrey: Петр пишет: Прилинковать библиотеку BosTaurus Я её не использую у себя. Зачем мне её линковать ? Можно ли как то это убрать эту библиотеку из линковки ? [img class=smile" src=/gif/smk/sm33.gif] Пробовал собирать C:\MiniGUI\BATCH\Compile.Bat test.prg через bcc582, тоже выдаёт такую же ошибку ? rvu пишет: А почему 5.5? BCC 5.8 не может собрать НОРМАЛЬНЫЙ ехе-ник из за большого количества объектов в ресурсах. Запускаешь ехе-ник после сборки, а вместо НЕКОТОРЫХ иконок белиберда стоит. BCC 5.5 собирает нормально.

Pasha: Andrey пишет: Я её не использую у себя. Зачем мне её линковать ? Можно ли как то это убрать эту библиотеку из линковки ? Ее использует hmg, модуль h_progresswheel. Там же черным по белому написано: _HB_FUN_BT_CLIENTAREAINVALIDATERECT' referenced from C:\MINIGUI\LIB\MINIGUI.LIB|h_progresswheel Убрать ее проще простого: не использовать функции из h_progresswheel.prg

Петр: Andrey пишет: Я её не использую у себя. Зачем мне её линковать ? Эту функцию использует hmg для элемента управления PROGRESSWHEEL с версии 20.10 RC2 (?) Используйте более старую версию или привыкайте P.S. Я не думаю, что Григорий забыл обновить Compile.Bat, но всякое может быть

SergKis: Andrey пишет BCC 5.8 не может собрать НОРМАЛЬНЫЙ ехе-ник из за большого количества объектов в ресурсах. Посмотри build. hbp в Tsb_DemoMdi[pre2] # project Resources .\res\MGDBU_.res // это взял у примера от Григория .\res\TEST_.res // это мой [/pre2] т.е. создаешь группы image собираешь их каким нибудь rc.exe (я исп. rc.exe 1998 г. от мелких) и исп. в сборке с rc проекта, имена только надо что бы не пересекались. По мне это удобно.

Andrey: Всем привет ! Переставил МиниГуи на другой комп. Примеры собираются, свои программы тоже. Не собирается основной проект, выдаёт ошибку:[pre2] (C:\MiniGUI\harbour\bin\harbour.exe) -n2 Source\main.prg Source\main_check.prg ... Source\ErrorSys3.prg -D_HBMK_ -q -w2 -es1 -DHBMK_HAS_MINIGUI=1 -oOBJ\ -iC:\borland\BCC55\Include -iC:\MiniGUI\harbour\include -iInclude -iSource -iC:\MiniGUI\include -iW:\HB_Project\@My4 Harbour 3.2.0dev (r2104281802) Copyright (c) 1999-2021, https://harbour.github.io/ Cannot open Source\main.prg, assumed external No code generated. hbmk2[abonent4win]: Error: Running Harbour compiler (built-in). 1[/pre2] В файле сборки проекта сценарий описан так: [pre2]... # включить путь к своим *.ch и *.fmg -incpath=Include -incpath=Source # list all *.prg Source\main.prg Source\main_check.prg ..... [/pre2] На другом компе собирается... Что нужно подкрутить ?

PSP: Andrey пишет: Cannot open Source\main.prg

Andrey: Да это я видел. Почему на другом компе собирается, а на новом нет ? Чего то не хватает.

SergKis: может полного пути ? .\source\...

Andrey: SergKis пишет: может полного пути ? На другом компе сам проект тот же самый ! Весь каталог переписал, папки такие же. Там собирается, а на новом компе нет. Почему ? Что не учитываю ?

PSP: Andrey пишет: Что не учитываю ? Может права?



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