Página 1 de 1

hbmk2 error al linkar lib

Enviado: 16 Ago 2021 14:45
por Claudio Soto
Estoy teniendo problemas en linkar una lib en hbmk2:

-L./WebView/Win32 -lWebView2Loader

Cuando compilo en c con:

Código: Selecionar todos

gcc -Wall myWebView2.cpp  -o myWebView2.exe  -L./WebView/Win32  -lWebView2Loader  -mwindows -pthread -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic

funciona perfecto, pero con hbmk2 no encuentra la lib y no puede linkar:

Código: Selecionar todos

SET HMGPATH=C:\HMG.3.5
SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw\bin;%PATH%
SET gtdrivers=-gtgui -gtwin

echo #define HMGRPATH %HmgPath%\RESOURCES > _hmg_resconfig.h
COPY /b %HMGPATH%\resources\hmg32.rc+"%~n1.rc"+%HMGPATH%\resources\filler _temp.rc >NUL
WINDRES -i _temp.rc -o _temp.o >windres.log 2>&1

   
rem call C:\HMG.3.5\build.bat test.prg -cpp  -L./WebView/Win32 -lWebView2Loader

HBMK2 -ldflag="-pthread  -static-libgcc  -static-libstdc++  -static -lpthread -lstdc++" -mt -otest  %HMGPATH%\hmg32.hbc %gtdrivers%  test.prg -cpp  -info -L./WebView/Win32 -lWebView2Loader
También probé agregar a un .hbc y no funciona:

Código: Selecionar todos

incpaths=/.
incpaths=WebView/include
libpaths=WebView/Win32
libs=WebView2Loader
Error:

Código: Selecionar todos

hbmk2: Enlazando... test.exe
c:/hmg.3.5/mingw/bin/../lib/gcc/i686-w64-mingw32/9.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lWebView2Loader
collect2.exe: error: ld returned 1 exit status
hbmk2: Error: Ejecutando enlazador. 1
Que estoy haciendo mal?

hbmk2 error al linkar lib

Enviado: 16 Ago 2021 16:23
por JoséQuintas
Os paths devem ser relativos à posição do HBP ou HBC
Geralmente as LIBs pra mingw tem o prefixo lib.

-lnome

significaria libnome.a

hbmk2 error al linkar lib

Enviado: 16 Ago 2021 16:41
por Claudio Soto
Gracias Jose por la respuesta.
El problema es que estoy usando el mismo mingw que utilizo con hmg.

Cuando invoco el compiladar c directo de la linea de comando con los parametros
-L./WebView/Win32 -lWebView2Loader
Enlaza perfecto la lib y corre bien el codigo.

Pero cuando le paso los mismos parametros al hbmk2 no funciona me esta faltando algo para que linke.

Este es el path relativo de la lib:
-L./WebView/Win32

Este es la lib a linkar:
-lWebView2Loader

hbmk2 error al linkar lib

Enviado: 16 Ago 2021 17:19
por JoséQuintas
Dê uma olhada com -trace pra ver se ajuda
Vai mostrar qual o comando que o hbmk2 está usando
Pode tirar dúvida quanto ao nome da lib que está usando

hbmk2 error al linkar lib

Enviado: 16 Ago 2021 22:51
por Claudio Soto
Resolví mediante prueba y error, cambie el -ldflag anterior por este otro:

Código: Selecionar todos

-ldflag="-pthread  -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic"
y compiló ok.
Gracias de todas formas!

PD: me olvidé de mencionar que las funciones que estoy compilando están escritas en C++