Código: Selecionar todos
$ xhbmk -static -gtxwc x.prg
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6769)
Copyright 1999-2011, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'x.prg'...
Lines 23, Functions/Procedures 2
Generating C source output to 'x.c'...
Done.
/usr/bin/ld: /usr/lib/xharbour/libvm.a(macro.o): na função "hb_macroUseAliased":
(.text+0x3bf): referência não definida para "hb_macroYYParse"
/usr/bin/ld: (.text+0x58b): referência não definida para "hb_macroYYParse"
/usr/bin/ld: /usr/lib/xharbour/libvm.a(macro.o): na função "hb_macroGetValue":
(.text+0xba2): referência não definida para "hb_macroYYParse"
/usr/bin/ld: /usr/lib/xharbour/libvm.a(macro.o): na função "hb_macroSetValue":
(.text+0xed2): referência não definida para "hb_macroYYParse"
/usr/bin/ld: /usr/lib/xharbour/libvm.a(macro.o): na função "hb_macroCompile":
(.text+0x1142): referência não definida para "hb_macroYYParse"
/usr/bin/ld: /usr/lib/xharbour/libvm.a(macro.o):(.text+0x1286): mais referências não definidas para "hb_macroYYParse" seguir
collect2: error: ld returned 1 exit status
Código: Selecionar todos
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
$ uname -a
Linux meupc 5.15.0-58-generic #64~20.04.1-Ubuntu SMP Fri Jan 6 16:42:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Código: Selecionar todos
$ export | fgrep HB_
declare -x C_USR="-DHB_FM_STATISTICS_OFF -O2"
declare -x HB_ARCHITECTURE="linux"
declare -x HB_BIN_INSTALL="/usr/bin"
declare -x HB_COMPILER="gcc"
declare -x HB_GT_LIB="gtcrs"
declare -x HB_INC_INSTALL="/usr/include/xharbour"
declare -x HB_LEX="SIMPLEX"
declare -x HB_LIB_INSTALL="/usr/lib/xharbour"
declare -x HB_TERM="linux/acsc"
Abaixo cito a pesquisa nos arquivos do xharbour de extensao ".c" das rotinas listadas no erro apesar de nao ter identificado o que devo linkar junto ja que a libvm.a é linkada automaticamente. E mesmo que eu remova ela da linkagem acusa que nao existe as rotinas no xharbour.so
Código: Selecionar todos
$ xhbmk -static x.prg 2>&1 | cut -d'"' -f 2 | egrep ^hb_ | sort -u | while read a ; do echo -e "============\nPesquisa de: $a\n============\n" ; find ~/xharbour/ -type f -name '*.c' -exec fgrep -Hni "$a" "{}" \; | cut -c15- ; done
============
Pesquisa de: hb_macroCompile
============
xharbour/utils/xbscript/linux/gcc/xbscript.c:1085:HB_FUNC_EXTERN( HB_MACROCOMPILE );
xharbour/utils/xbscript/linux/gcc/xbscript.c:2111:{ "HB_MACROCOMPILE", {HB_FS_PUBLIC}, {HB_FUNCNAME( HB_MACROCOMPILE )}, NULL },
xharbour/source/rtl/linux/gcc_mt/achoice.c:765: pMacro = hb_macroCompile( pSelect->item.asString.value );
xharbour/source/rtl/linux/gcc/achoice.c:765: pMacro = hb_macroCompile( pSelect->item.asString.value );
xharbour/source/vm/macro.c:850:HB_MACRO_PTR hb_macroCompile( const char * szString )
xharbour/source/vm/macro.c:856: HB_TRACE(HB_TR_DEBUG, ("hb_macroCompile(%s)", szString));
xharbour/source/vm/macro.c:879:HB_FUNC( HB_MACROCOMPILE )
xharbour/source/rdd/workarea.c:1720: pMacro = hb_macroCompile( pExpr );
xharbour/source/rdd/hsx/hsx.c:589: HB_MACRO_PTR pMacro = hb_macroCompile( szExpr );
============
Pesquisa de: hb_macroGetValue
============
xharbour/source/vm/macro.c:521:void hb_macroGetValue( HB_ITEM_PTR pItem, BYTE iContext, BYTE flags )
xharbour/source/vm/macro.c:523: HB_TRACE(HB_TR_DEBUG, ("hb_macroGetValue(%p)", pItem));
xharbour/source/vm/dbgentry.c:968: hb_macroGetValue( hb_stackItemFromTop( -1 ), 0, HB_SM_RT_MACRO );
xharbour/source/vm/hvm.c:3543: hb_macroGetValue( hb_stackItemFromTop( -1 ), 0, pCode[ ++w ] );
xharbour/source/vm/hvm.c:3558: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHARG, pCode[ ++w ] );
xharbour/source/vm/hvm.c:3617: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHLIST, pCode[ ++w ] );
xharbour/source/vm/hvm.c:3635: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHINDEX, pCode[ ++w ] );
xharbour/source/vm/hvm.c:3677: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHPARE, pCode[ ++w ] );
xharbour/source/vm/hvm.c:13329: hb_macroGetValue( hb_stackItemFromTop( -1 ), 0, bFlags );
xharbour/source/vm/hvm.c:13354: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHINDEX, bFlags );
xharbour/source/vm/hvm.c:13403: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHARG, bFlags );
xharbour/source/vm/hvm.c:13419: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHLIST, bFlags );
xharbour/source/vm/hvm.c:13430: hb_macroGetValue( hb_stackItemFromTop( -1 ), HB_P_MACROPUSHPARE, bFlags );
============
Pesquisa de: hb_macroSetValue
============
xharbour/source/vm/macro.c:667:void hb_macroSetValue( HB_ITEM_PTR pItem, BYTE flags )
xharbour/source/vm/macro.c:669: HB_TRACE(HB_TR_DEBUG, ("hb_macroSetValue(%p)", pItem));
xharbour/source/vm/hvm.c:3528: hb_macroSetValue( hb_stackItemFromTop( -1 ), pCode[ ++w ] );
xharbour/source/vm/hvm.c:13452: hb_macroSetValue( hb_stackItemFromTop( -1 ), bFlags );
============
Pesquisa de: hb_macroUseAliased
============
xharbour/source/vm/macro.c:81:static void hb_macroUseAliased( HB_ITEM_PTR, HB_ITEM_PTR, int, BYTE );
xharbour/source/vm/macro.c:719: hb_macroUseAliased( pAlias, pVar, HB_MACRO_GEN_POP, flags );
xharbour/source/vm/macro.c:731: hb_macroUseAliased( pAlias, pVar, HB_MACRO_GEN_PUSH, flags );
xharbour/source/vm/macro.c:748:static void hb_macroUseAliased( HB_ITEM_PTR pAlias, HB_ITEM_PTR pVar, int iFlag, BYTE bSupported )
============
Pesquisa de: hb_macroYYParse
============
xharbour/source/vm/macro.c:120: return hb_macroYYParse( pMacro );
xharbour/source/macro/linux/gcc_mt/macroy.c:4044:int hb_macroYYParse( HB_MACRO_PTR pMacro )
xharbour/source/macro/linux/gcc/macroy.c:4044:int hb_macroYYParse( HB_MACRO_PTR pMacro )
Código: Selecionar todos
$ xhbmk -static x.prg 2>&1 | cut -d'"' -f 2 | egrep ^hb_ | sort -u | while read a ; do echo -e "============\nPesquisa de: $a\n============\n" ; find ~/xharbour/ -type f -name '*.h' -exec fgrep -Hni "$a" "{}" \; | cut -c15- ; done
============
Pesquisa de: hb_macroCompile
============
xharbour/include/hbapi.h:903:extern HB_EXPORT HB_MACRO_PTR hb_macroCompile( const char * szString ); /* compile a string and return a pcode buffer */
============
Pesquisa de: hb_macroGetValue
============
xharbour/include/hbapi.h:898:extern HB_EXPORT void hb_macroGetValue( HB_ITEM_PTR pItem, BYTE iContext, BYTE flags ); /* retrieve results of a macro expansion */
============
Pesquisa de: hb_macroSetValue
============
xharbour/include/hbapi.h:899:extern HB_EXPORT void hb_macroSetValue( HB_ITEM_PTR pItem, BYTE flags ); /* assign a value to a macro-expression item */
============
Pesquisa de: hb_macroUseAliased
============
============
Pesquisa de: hb_macroYYParse
============
xharbour/include/hbmacro.h:106:extern int hb_macroYYParse( HB_MACRO_PTR pMacro );
Código: Selecionar todos
$ xhbmk x.prg
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6769)
Copyright 1999-2011, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'x.prg'...
Lines 23, Functions/Procedures 2
Generating C source output to 'x.c'...
Done.
/usr/bin/ld: /usr/lib/xharbour/libxharbour.so: referência não definida para "hb_compExprErrorType"
/usr/bin/ld: /usr/lib/xharbour/libxharbour.so: referência não definida para "hb_compExprReducePlusStrings"
/usr/bin/ld: /usr/lib/xharbour/libxharbour.so: referência não definida para "hb_macroYYParse"
/usr/bin/ld: /usr/lib/xharbour/libxharbour.so: referência não definida para "hb_compExprFree"
/usr/bin/ld: /usr/lib/xharbour/libxharbour.so: referência não definida para "stime"
/usr/bin/ld: /usr/lib/xharbour/libxharbour.so: referência não definida para "hb_compExprCheckMacroVar"
collect2: error: ld returned 1 exit status
Código: Selecionar todos
$ xhbmk x.prg 2>&1 | cut -d'"' -f 2 | egrep ^hb_ | sort -u | while read a ; do echo -e "============\nPesquisa de: $a\n============\n" ; find ~/xharbour/ -type f -name '*.c' -exec fgrep -Hni "$a" "{}" \; | cut -c15- ; done
============
Pesquisa de: hb_compExprCheckMacroVar
============
xharbour/include/hbexprb.c:466: if( hb_compExprCheckMacroVar( pSelf->value.asString.string ) )
xharbour/include/hbexprb.c:3304: if( ! hb_compExprCheckMacroVar( pSelf->value.asOperator.pRight->value.asString.string ) )
xharbour/include/hbexprb.c:3391: if( ! hb_compExprCheckMacroVar( pSelf->value.asOperator.pRight->value.asString.string ) )
xharbour/include/hbexprc.c:883:BOOL hb_compExprCheckMacroVar( char * szText )
xharbour/source/common/expropt1.c:530: hb_compExprCheckMacroVar( szName );
============
Pesquisa de: hb_compExprErrorType
============
xharbour/include/hbexpra.c:222:void hb_compExprErrorType( HB_EXPR_PTR pExpr, HB_MACRO_DECL )
xharbour/include/hbexpra.c:224: HB_TRACE(HB_TR_DEBUG, ("hb_compExprErrorType()"));
xharbour/source/common/expropt2.c:1171: hb_compExprErrorType( pExpr, HB_MACRO_PARAM );
============
Pesquisa de: hb_compExprFree
============
xharbour/include/hbexprb.c:3225: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/include/hbexprb.c:3247: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/include/hbexpra.c:211:void hb_compExprFree( HB_EXPR_PTR pExpr, HB_MACRO_DECL )
xharbour/include/hbexpra.c:213: HB_TRACE(HB_TR_DEBUG, ("hb_compExprFree()"));
xharbour/include/hbexprc.c:948: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/include/hbexprc.c:972: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:92: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:93: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:191: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:192: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:270: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:271: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:347: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:348: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:429: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:430: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:435: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:439: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:444: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:481: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:482: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:511: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:512: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:527: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:528: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:558: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:559: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:568: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:569: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:599: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:600: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:628: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:629: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:663: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:664: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:692: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:693: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:727: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:728: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:756: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:757: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:791: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:792: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:820: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:821: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:853: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:854: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:867: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:868: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:896: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:897: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:905: hb_compExprFree( pSelf->value.asOperator.pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:906: hb_compExprFree( pSelf->value.asOperator.pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:930: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:931: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:942: hb_compExprFree( pLeft, HB_MACRO_PARAM);
xharbour/source/common/expropt2.c:944: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:951: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:952: hb_compExprFree( pRight, HB_MACRO_PARAM ); /* discard expression */
xharbour/source/common/expropt2.c:964: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:966: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:973: hb_compExprFree( pLeft, HB_MACRO_PARAM ); /* discard expression */
xharbour/source/common/expropt2.c:974: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:995: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:996: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1007: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1008: hb_compExprFree( pRight, HB_MACRO_PARAM ); /* discard expression */
xharbour/source/common/expropt2.c:1017: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1019: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1029: hb_compExprFree( pLeft, HB_MACRO_PARAM ); /* discard expression */
xharbour/source/common/expropt2.c:1030: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1039: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1041: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1102: hb_compExprFree( pLeft, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1103: hb_compExprFree( pRight, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1126: hb_compExprFree( pSelf->value.asList.pExprList, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1132: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1137: hb_compExprFree( pExpr, HB_MACRO_PARAM ); /* delete FALSE expr */
xharbour/source/common/expropt2.c:1147: hb_compExprFree( pSelf->value.asList.pExprList, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1153: hb_compExprFree( pSelf, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1157: hb_compExprFree( pExpr, HB_MACRO_PARAM ); /* delete TRUE expr */
xharbour/source/common/expropt2.c:1201: hb_compExprFree( pExpr, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1222: hb_compExprFree( pExpr, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1297: hb_compExprFree( pParms, HB_MACRO_PARAM );
xharbour/source/common/expropt2.c:1298: hb_compExprFree( pSelf->value.asFunCall.pFunName, HB_MACRO_PARAM );
============
Pesquisa de: hb_compExprReducePlusStrings
============
xharbour/include/hbexprc.c:939:HB_EXPR_PTR hb_compExprReducePlusStrings( HB_EXPR_PTR pLeft, HB_EXPR_PTR pRight, HB_MACRO_DECL )
xharbour/source/common/expropt2.c:448: pSelf = hb_compExprReducePlusStrings( pLeft, pRight, HB_MACRO_PARAM );
============
Pesquisa de: hb_macroYYParse
============
xharbour/source/vm/macro.c:120: return hb_macroYYParse( pMacro );
xharbour/source/macro/linux/gcc_mt/macroy.c:4044:int hb_macroYYParse( HB_MACRO_PTR pMacro )
xharbour/source/macro/linux/gcc/macroy.c:4044:int hb_macroYYParse( HB_MACRO_PTR pMacro )
Código: Selecionar todos
$ xhbmk x.prg 2>&1 | cut -d'"' -f 2 | egrep ^hb_ | sort -u | while read a ; do echo -e "============\nPesquisa de: $a\n============\n" ; find ~/xharbour/ -type f -name '*.h' -exec fgrep -Hni "$a" "{}" \; | cut -c15- ; done
============
Pesquisa de: hb_compExprCheckMacroVar
============
xharbour/include/hbexprop.h:422:BOOL hb_compExprCheckMacroVar( char * );
============
Pesquisa de: hb_compExprErrorType
============
xharbour/include/hbexprop.h:419:void hb_compExprErrorType( HB_EXPR_PTR, HB_MACRO_DECL );
============
Pesquisa de: hb_compExprFree
============
xharbour/include/hbexprop.h:418:void hb_compExprFree( HB_EXPR_PTR, HB_MACRO_DECL );
============
Pesquisa de: hb_compExprReducePlusStrings
============
xharbour/include/hbexprop.h:424:HB_EXPR_PTR hb_compExprReducePlusStrings( HB_EXPR_PTR, HB_EXPR_PTR, HB_MACRO_DECL );
============
Pesquisa de: hb_macroYYParse
============
xharbour/include/hbmacro.h:106:extern int hb_macroYYParse( HB_MACRO_PTR pMacro );
Everson
