hbmk2 error al linkar lib

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

hbmk2 error al linkar lib

Mensagem 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?
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbmk2 error al linkar lib

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

hbmk2 error al linkar lib

Mensagem 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
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbmk2 error al linkar lib

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

hbmk2 error al linkar lib

Mensagem 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++
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Responder