Página 1 de 1

Erro ao compilar com xHarbour 1.2.1 no Ubuntu 20.04

Enviado: 31 Jan 2023 21:47
por evecar
Sou usuario linux e ja uso o xHarbour, hoje baixei o xharbour 1.2.1, compilei, instalei, porem na hora de compilar/linkar qualquer prg da o erro abaixo (mesmo se eu nao colocar a gtxwc da o mesmo erro):

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
Meu Linux:

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
Ambiente:

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"
Caso alguem esteja usando o xHarbour num linux acima do 18.04 e que puder me fornecer o arquivo de compilacao pra eu avaliar o que devo linkar junto pra incluir as rotinas citadas !

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 )
Abaixo tambem cito a pesquisa das rotinas do arquivos do xHarbour de extensao ".h"

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 );
Abaixo tambem cito o erro se eu nao usar nem o "-static":

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
Pesquisando as rotinas acima nos arquivos ".c" do xharbour:

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 )
Pesquisando nos arquivos ".h":

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 );
Se alguem puder ajudar desde ja agradeço !

Everson