Página 2 de 2
Criar executavel x86/64
Enviado: 03 Set 2020 09:34
por marco.prodata
O mingw32-64 é o deste site mingw-w64.org ?
Criar executavel x86/64
Enviado: 03 Set 2020 10:08
por Itamar M. Lins Jr.
Ola!
Win10 OS.
1) Download and install msys2
https://www.msys2.org/
https://repo.msys2.org/distrib/x86_64/m ... 200903.exe //em 03/09/2020, muda constantemente.
2) Open MSYS2 box, to update msys2
$ pacman -Syu
$ pacman -Su
2.a) Attention, this command get GCC 32 and 64 Bit
Código: Selecionar todos
$ pacman -S git base-devel msys2-devel mingw-w64-{i686,x86_64}-toolchain
&& Exit of msys2 box3
2.b)Now get OpenSSL,Curl, this link of Viktor Szakats.
https://github.com/curl/curl-for-win#bi ... -downloads
>set HB_STATIC_CURL=yes
>set HB_STATIC_OPENSSL=yes
>set HB_WITH_OPENSSL=C:\openssl-1.1.1g-win64-mingw\include
>set HB_WITH_CURL=C:\curl-7.70.0-win64-mingw\include
Get git!
https://git-scm.com/downloads and install it
3) Open a CMD box, and get harbour font of git into \hb32-code
>git clone --depth=20
https://github.com/harbour/core.git hb32-code
3.a) Fix! to extract static lib of CURL. 64Bit
cd \hb32-code\contrib\hbcurl
&&Edit hbcurl.hbp and add this.
-depimplibs=curl:../bin/libcurl-x64.dll
3.b) Now add in PATH to GCC "SEE" your maker harbour 64 .or 32 Bits
&& Here! if your want GCC64
>set PATH=C:\msys64\mingw64\bin;%PATH%
&& And for 32 bit set path like this
>set PATH=C:\msys64\mingw32\bin;%PATH%
4) Make harbour "bin" files!
>cd \hb32-code
>set HB_INSTALL_PREFIX=c:\hb32
>mingw32-make clean install
&& Now Wait! make install harbour files EXE/DLL/LIB(.a) into \hb32
>set PATH=C:\hb32\bin;%PATH%
>cd tests
>hbmk2 speed.prg
Saudações,
Itamar M. Lins Jr.
Criar executavel x86/64
Enviado: 03 Set 2020 16:12
por marco.prodata
Mestres,
Baixei o mingw-86-64 como indicado pelos colegas, sei q setando HB_COMPILER=mingw ele vai gerar o harbour em 32 bits, e a compilação funcionaria tanto na 32 quanto 64 bits, mas gostaria de chegar no cenário que o José Quintas chegou, tendo a pasta harbour/lib/win/mingw e harbour/lib/win/mingw64, pra gerar executaveis especificos pra 64 quando precisasse. Como faço nesse caso? Compilando a partir dos fontes do harbour?
Estou querendo fazer isso por questão de aprendizado mesmo.
Criar executavel x86/64
Enviado: 03 Set 2020 16:19
por Itamar M. Lins Jr.
Ola!
harbour/lib/win/mingw e harbour/lib/win/mingw64,
Tá explicado ai em cima.
Precisa do Msys2. Ele vai baixar o GCC 10.1 para 32 e 64.
mingw-w64-{i686,x86_64}-toolchain
Vai depois compilar os fontes do harbour 3.2 para 32 e 64 e criar as libs em pasta separadas.
Saudações,
Itamar M. Lins Jr.
Criar executavel x86/64
Enviado: 03 Set 2020 16:41
por Itamar M. Lins Jr.
Ola!
Usando o Msys2 vc terá as atualizações do GCC ou CLang.
Veja:
Código: Selecionar todos
C:\>dir \msys64 /ad
O volume na unidade C não tem nome.
O Número de Série do Volume é 906B-7B11
Pasta de C:\msys64
26/08/2020 22:37 <DIR> .
26/08/2020 22:37 <DIR> ..
26/08/2020 22:31 <DIR> clang32
26/08/2020 22:31 <DIR> clang64
26/08/2020 22:35 <DIR> dev
26/08/2020 23:07 <DIR> etc
26/08/2020 22:35 <DIR> home
26/08/2020 22:35 <DIR> installerResources
26/08/2020 23:16 <DIR> mingw32
26/08/2020 23:26 <DIR> mingw64
26/08/2020 22:31 <DIR> opt
26/08/2020 23:26 <DIR> tmp
26/08/2020 23:08 <DIR> usr
26/08/2020 22:31 <DIR> var
0 arquivo(s) 0 bytes
14 pasta(s) 187.847.602.176 bytes disponíveis
Pode ter até 4 compiladores 2 GCC e 2 CLang 32/64Bits.
Aqui uso apenas GCC.
Código: Selecionar todos
C:\>tree \hb32\lib
Listagem de caminhos de pasta
O número de série do volume é 906B-7B11
C:\HB32\LIB
└───win
├───mingw
└───mingw64
O PADRÃO, irá depender do que estiver no PATH
Código: Selecionar todos
>set PATH=C:\msys64\mingw64\bin;%PATH%
&& And for 32 bit set path like this
>set PATH=C:\msys64\mingw32\bin;%PATH%
Primeira etapa baixar o GCC.
Segunda etapa baixar os fontes do Harbour.
Terceira gerar os binários do Harbour!, tanto faz ser 32 ou 64.
Instale o Git para baixar o Harbour
https://git-scm.com/downloads
Agora para gerar o NOSSO EXECUTÁVEL, precisamos das LIBS de 32 ou 64.(do Harbour)
O Harbour em 32Bits, vai gerar .EXEs de 32 ou 64 o Harbour de 64Bits pode gerar .EXEs 32 ou 64.
O pulo do gato é apenas o PATH para o compilador GCC, que vc vai dizer se quer 32 ou 64 só isso. O Hbmk2 vai procurar no PATH qual é o compilador, não precisa ficar setando nada a mais do que já foi explicado.
Dai se vc gerou o Harbour, primeiro em 32Bits e depois gerou o Harbour em 64Bits e o PATH esta para: set PATH=C:\msys64\mingw64\bin;%PATH%
Basta usar:
Porquê vc já usa 64Bits padrão no PATH.
Saudações,
Itamar M. Lins Jr
Criar executavel x86/64
Enviado: 03 Set 2020 19:09
por JoséQuintas
Itamar M. Lins Jr. escreveu:O pulo do gato é apenas o PATH para o compilador GCC, que vc vai dizer se quer 32 ou 64 só isso. O Hbmk2 vai procurar no PATH qual é o compilador, não precisa ficar setando nada a mais do que já foi explicado.
Sinto muito, aqui não é assim, é pasta única pra 32 ou 64 bits, então o PATH NÃO É o pulo do gato.
E NÃO fui eu que fiz assim, é "original de fábrica" da instalação do mingw x86_x64.
Criar executavel x86/64
Enviado: 03 Set 2020 19:21
por Itamar M. Lins Jr.
Ola!
Sinto muito, aqui não é assim, é pasta única pra 32 ou 64 bits, então o PATH NÃO É o pulo do gato.
Como vc sabe que o GCC é 64 ou 32 ?
Tá entendendo errado e fazendo confusão.
Tem dois GCC.EXE ai ? Na mesma pasta ?
Quem separa é o Msys2, vem com tudo separado.
E o Harbour faz a mesma coisa com as próprias libs.
Padrão no 3.4 é CLANG.
https://github.com/vszakats/harbour-cor ... hot-win.7z
Saudações,
Itamar M. Lins Jr.
Criar executavel x86/64
Enviado: 03 Set 2020 19:48
por Itamar M. Lins Jr.
Ola!
Olhe ai:
Código: Selecionar todos
C:\hb34>cd \msys64
C:\msys64>cd mingw32
C:\msys64\mingw32>cd bin
C:\msys64\mingw32\bin>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../gcc-10.2.0/configure --prefix=/mingw32 --with-local-prefix=/mingw32/local --build=i686-w64-mingw32 --host=i686-w64-mingw32 --target=i686-w64-mingw32 --with-native-system-header-dir=/mingw32/i686-w64-mingw32/include --libexecdir=/mingw32/lib --enable-bootstrap --with-arch=i686 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++ --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --disable-plugin --with-libiconv --with-system-zlib --with-gmp=/mingw32 --with-mpfr=/mingw32 --with-mpc=/mingw32 --with-isl=/mingw32 --with-pkgversion='Rev1, Built by MSYS2 project' --with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld --disable-sjlj-exceptions --with-dwarf2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (Rev1, Built by MSYS2 project)
C:\msys64\mingw32\bin>cd ..
C:\msys64\mingw32>cd ..
C:\msys64>cd mingw64
C:\msys64\mingw64>cd bin
C:\msys64\mingw64\bin>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-w64-mingw32
Configured with: ../gcc-10.2.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++ --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --disable-plugin --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev1, Built by MSYS2 project' --with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (Rev1, Built by MSYS2 project)
C:\msys64\mingw64\bin>
DUAS pastas DUAS LIBS DUAS tudo... OPENSSL, CURL...
Saudações,
Itamar M. Lins Jr.
Criar executavel x86/64
Enviado: 03 Set 2020 21:47
por Fernando queiroz
pelo que entendi tem de compilar o HARBOUR em 32 e 64 para gerar as libs do HARBOUR nas duas opções é isso mesmo?
Criar executavel x86/64
Enviado: 04 Set 2020 00:49
por Fernando queiroz

- olha ai o teste em 64 bit
Criar executavel x86/64
Enviado: 04 Set 2020 05:18
por Itamar M. Lins Jr.
Ola!
pelo que entendi tem de compilar o HARBOUR em 32 e 64 para gerar as libs do HARBOUR nas duas opções é isso mesmo?
Sim
Saudações,
Itamar M. Lins Jr.
Criar executavel x86/64
Enviado: 04 Set 2020 12:06
por marco.prodata
Seguindo, baixei o mingw32 e 64 bits pelo msys, como sugerido pelo colega itamar, compilei o harbour 32 bits pra uma pasta e harbour 64 pra outra, tudo tranquilo por enquanto.
Na compilação do harbour, adicionei o caminho pros includes do postgresql, pq preciso dessa lib, assim:
set HB_WITH_PGSQL=E:\pgsql_12_4\include
na compilação do harbour, gerou a libhbpgsql.a normalmente, mas ao compilar com o harbour 32 bits um programa q precisa dessa lib, tive os seguintes erros:
hbmk2: Linkando... PROECFR.exe
e:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/../../../../i686-w64-mingw32/bin/ld.exe: e:/harbour_32/lib/win/mingw/libhbpgsql.a(postgres.o):postgres.c:(.text+0x19): undefined reference to `PQfinish'
e:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/../../../../i686-w64-mingw32/bin/ld.exe: e:/harbour_32/lib/win/mingw/libhbpgsql.a(postgres.o):postgres.c:(.text+0x49): undefined reference to `PQclear'
e mais alguns, relacionados a funções da mesma lib, saberiam dizer do q se trata?
meu path pra compilação de programas harbour 32 está assim:
PATH=e:\msys64\mingw32\bin;e:\harbour_32\bin;%path%
Mais uma vez agradeço a atenção recebida.
Criar executavel x86/64
Enviado: 04 Set 2020 13:45
por marco.prodata
Já descobri, os headers que baixei do postgresql são pra 64 bits, vou ver se achos de 32bits do postgresql 12. Acho q achei o fio da meada agora, vlw pelas informações.