Construyendo mod_harbour_V2 64 bits

Responder
Avatar de Usuario
jvtecheto
Mensajes: 56
Registered for: 3 years 5 months
Spain

Construyendo mod_harbour_V2 64 bits

Mensaje por jvtecheto »

Hola :

Si sois tan amables, unas preguntas sobre la construccion del modulo para 64 bits con msvc

1.- Alquien ha construido mod_harbour.V2 ?

2.- Si alguien lo ha hecho, ha cambiado algo del fichero go64.bat ?

( Huelga decir que no estan incluidos en la pregunta Diego, Charly y Cristobal :lol: :lol: )

Manu tampoco, me gustaria incluir a Felix, pero supongo que sigues con la parte oscura y tu mingw

Muchisimas gracias por vuestra ayuda.

Saludos.

Jose Vte.
Entusiasta de la programacion y de Harbour, Fivewin en particular.

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje por charly »

Jose,

Si ya has construido harbour con msvc, esto son 2 pasos. Del go64, la mitad sobra

La clave son estas 2 lineas

Código: Seleccionar todo

call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64

c:\harbour\bin\win\msvc64\hbmk2 mod_harbour.v2.hbp -comp=msvc64 
El primero te activa la consola de msvc (revisar el path)
El segundo te hace el make (revisa si tienes harbour o harbour.core )

C.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

jparada
Mensajes: 13
Registered for: 2 years 2 months
Mexico

Mensaje por jparada »

Como tengo compilado Harbour msvc64, cambié el go64.bat así:

call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
c:\harbour_msvc\bin\win\msvc64\hbmk2 mod_harbour.v2.hbp -comp=msvc64

Y obtengo estos errores
img1.png
Dónde localizo el manual de compilación que se menciona en otro post? y/o qué me falta?.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Saludos,
Javier

Avatar de Usuario
jvtecheto
Mensajes: 56
Registered for: 3 years 5 months
Spain

Mensaje por jvtecheto »

Hola Javier.

Has comprobado que tienes todas las libs que se detallan en el archivo .hbp
ya sabes hbcurl.lib, hbssl.lib, hbhpdf.lib, hbmemio.lib, etc estas son contribuciones de terceros
(carpeta contrib), lo digo porque cuando construyes harbour no te crea estas libs por defecto.

Ya nos cuentas.

Saludos.

Jose Vte.
Entusiasta de la programacion y de Harbour, Fivewin en particular.

jparada
Mensajes: 13
Registered for: 2 years 2 months
Mexico

Mensaje por jparada »

Hola José,

Validé lo que me comentas y pues al parecer sí que me faltaban algunas librerías, así que eliminé lo que tenía y luego me descargué del repo de Diego https://github.com/diegofazio/harbour_binaries/ e intentar nuevamente y me sigue dando error:

Compiling 'source\sessions.prg'...
Lines 1778, Functions/Procedures 20
Generating C source output to 'C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\sessions.c'... Done.
hbmk2: Comando de compilador C/C++:
cl.exe -nologo -c -O2 -Ic:\xampp\apache\include -TC -W4 -wd4127 -FoC:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\ -DHB_DYNLIB -Ic:\harbour_msvc\include -Ic:\harbour_msvc\contrib\hbwin -Ic:\harbour_msvc\contrib\hbhpdf -Ic:\harbour_msvc\contrib\xhb -Ic:\harbour_msvc\contrib\hbct -Ic:\harbour_msvc\contrib\hbtip -Ic:\harbour_msvc\contrib\hbfship -Ic:\harbour_msvc\contrib\hbxpp -Ic:\harbour_msvc\contrib\hbcurl -Ic:\harbour_msvc\contrib\hbmzip -Ic:\harbour_msvc\contrib\hbnetio -Ic:\harbour_msvc\contrib\hbssl C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\mh_apache.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\ap_func.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\cookies.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\legacy_func.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\main.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\persistence.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\prepro.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\preproPHP.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\trace.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\errorsys.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\sessions.c source\mod_harbour.c source\ap_func_c.c source\legacy_func_c.c
hbmk2[mod_harbour.v2]: Error: Ejecutando compilador C/C++. -1
cl.exe -nologo -c -O2 -Ic:\xampp\apache\include -TC -W4 -wd4127 -FoC:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\ -DHB_DYNLIB -Ic:\harbour_msvc\include -Ic:\harbour_msvc\contrib\hbwin -Ic:\harbour_msvc\contrib\hbhpdf -Ic:\harbour_msvc\contrib\xhb -Ic:\harbour_msvc\contrib\hbct -Ic:\harbour_msvc\contrib\hbtip -Ic:\harbour_msvc\contrib\hbfship -Ic:\harbour_msvc\contrib\hbxpp -Ic:\harbour_msvc\contrib\hbcurl -Ic:\harbour_msvc\contrib\hbmzip -Ic:\harbour_msvc\contrib\hbnetio -Ic:\harbour_msvc\contrib\hbssl C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\mh_apache.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\ap_func.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\cookies.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\legacy_func.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\main.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\persistence.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\prepro.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\preproPHP.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\trace.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\errorsys.c C:\Users\jpara\AppData\Local\Temp\hbmk_0938pa.dir\sessions.c source\mod_harbour.c source\ap_func_c.c source\legacy_func_c.c
*** Error compile ***

Alguna idea?.
Saludos,
Javier

thefull
Mensajes: 2
Registered for: 2 years 11 months
Spain

Mensaje por thefull »

¿ Alguna alma caritativa que me ponga para construirlo en Linux ( Ubuntu 18.04 ) ? O en su defecto, que me pase el .so.

La idea es meterlo en un docker, lo tengo todos los pasos, pero me falta solo esta parte ;-(

angeiras
Mensajes: 11
Registered for: 2 years 5 months
Brazil

Mensaje por angeiras »


thefull
Mensajes: 2
Registered for: 2 years 11 months
Spain

Mensaje por thefull »

OH!! Perfecto, muchas gracias con la librería funciona !!

Por si alguien quiere tenerlo en un docker;

Create un directorio que contenga lo siguiente;
0) El fichero mod_harbour.v2.so

1 ) Bájate el fichero de configuración, o el que tengas de Apache, más info en https://hub.docker.com/_/httpd
$ docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf

2) Abres el fichero my-httpd.conf y le añades la parte de configuración de modHarbourV2
LoadModule harbourV2_module /usr/lib/apache2/modules/mod_harbour.v2.so

<FilesMatch "\.(prg|hrb)$">
SetHandler harbour
</FilesMatch>

3) Copia la carpeta Samples del modHarbourV2 en el directorio, esto es simplemente para que veamos que funciona el mod

4) Crea un fichero llamado Dockerfile que contenga;
FROM httpd:2.4
COPY mod_harbour.v2.so /usr/lib/apache2/modules/mod_harbour.v2.so
COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf
COPY ./Samples/ /usr/local/apache2/htdocs/

4) Ejecuta estos comandos, crear un fichero de script si te es más cómodo;
docker build -t my-apache2 .
docker run -dit --name my-harbour-app -p 8080:80 my-apache2

5) Ya tienes el modHarbourV2 dockenizado, ves a la web http://127.0.0.1:8080/hello.prg

Imagen

Responder