Bom, não li tudo que está se passando por esse topico, mas vou dar alguns pitaco e espero não está complicando ainda mais.
Para compilar com Harbour eu faço um pouco diferente, primeiro que meu path para compilar com harbour é o seguinte:
Com BCC55:
Código: Selecionar todos
SET PATH=%PATH%;d:\devel\BCC55\BIN;d:\devel\BCC55\LIB;d:\devel\BCC55\LIB\PSDK;d:\devel\BCC55\INCLUDE;d:\devel\hb-bcc\bin;d:\devel\hb-bcc\lib;d:\devel\hb-bcc\include;d:\devel\BISON\BIN
SET INCLUDE=%INCLUDE%;d:\devel\Bcc55\include;d:\devel\hb-bcc\include
SET LIB=%LIB%;d:\devel\Bcc55\lib;d:\devel\BCC55\LIB\PSDK;d:\devel\hb-bcc\lib
SET HRB_DIR=d:\devel\hb-bcc
SET HB_INC_PGSQL=d:\pgsql\include
%SystemRoot%\system32\cmd.exe
Com MSVC:
Código: Selecionar todos
cd\devel
cd msvc\VC
call vcvarsall.bat"
cd\sistema
SET PATH=d:\devel\hb-msvc\bin;d:\devel\hb-msvc\lib;d:\devel\hb-msvc\include;%PATH%
SET INCLUDE=%INCLUDE%;d:\devel\hb-msvc\include
SET LIB=%LIB%;d:\devel\hb-msvc\lib
SET HRB_DIR=d:\devel\hb-msvc
SET HB_INC_PGSQL=d:\pgsql\include
%SystemRoot%\system32\cmd.exe
Meu script de compilação é um arquivo .HBC esse arquivo basta ter ele dentro da pasta onde vou compilar meu projeto que automaticamente o hbmk2 reconhece tudo.
Script.hbc
Código: Selecionar todos
{bcc|allmsvc}libs=hwgui procmisc hbmzip hbziparc hbct hbtip hbwin xhb hbhpdf libhpdf libpng hbblat blat hbgd bgd
{bcc}libs=${hrb_dir}\contrib\minhalib_bcc
{allmsvc}libs=${hrb_dir}\contrib\minhalib_msvc
{allmingw}libs=libhwgui libprocmisc libhbmzip libhbziparc libhbct libhbtip libhbwin libxhb libhbhpdf liblibhpdf liblibpng libhbblat libblat libhbgd libbgd
{win}gt=gtgui
libpaths=${hrb_dir}\contrib\hwgui\lib
incpaths=${hrb_dir}\contrib\hwgui\include
#sources=source_hb\xAds.prg
#prgflags=-D__ADVANTAGE__
run=yes
Vou explicar o script acima:
1ª Linha é a lista de LIB'S que podem ser compilados tanto com BCC ou MSVC, ou seja tem nomes em comuns.
2ª Linha são lib's que só compilaram se for compilar com BCC, no caso pode ser BCC55,BCC58 ou BCC60 (Foi os que já testei e compilei)
3ª Linha São lib's que só compilaram se for compilar com MSVC
4ª Linha São lib's que só compilaram se for compilar com MINGW
5ª Linha quer dizer que é um aplicativo GUI ou seja Grafico que no meu exemplo acima serve para compilar aplicativos Hwgui, mas para aplicativos sem lib's graficas pode omitir essa linha ou usar gt=gtwin
6ª Linha quer dizer que o hbmk2 alem de procurar pelas LIB's nos PATH que iniciei ele também vai buscar nesse caminho que indiquei nessa linha.
7ª Linha é a mesma coisa que a 6ª linha porem vai buscar mais path para INCLUDES.
8ª Linha quer dizer o caminho de um arquivo fonte que tem que compilar com meu aplicativo alem dos que já indiquei na linha de comando do hbmk2, atenção que ele está com um # na frente isso quer dizer que não vai participar do script serve para comentar as linhas dentro do script.
9ª Linha são as FLAGS que devem ser reconhecidas pelo meu aplicativo na compilação, no exemplo acima ela esta comentada para não participar do meu script
10ª Linha quer dizer que se compilar com sucesso ele já abre meu aplicativo automaticamente.
E na linha de comando do hbmk2 eu uso assim(Tenho isso em um COMP.BAT):
hbmk2 -inc -st -trace -oNOMESISI *.prg NOMERES.RC
Onde:
-st quer dizer que o aplicativo é um
single-thread ou seja não utiliza recursos Multi-theread, e diga-se de passagem o MT no Harbour está muito bom.
-trace quer dizer que deve aparecer os comandos executados pelo hbmk2
-oNOMESIS quer dizer o nome do EXECUTAVEL que está sendo gerado
*.prg quer dizer que todos os arquivos com a extenção .PRG que esta na pasta onde estou executando o hbmk2 será compilado em meu sistema
NOMERES.RC esse é nome do arquivo de resource
Como meu .PRG principal esta com o FUNCTION MAIN() isso faz com que o Harbour identifique automaticamente qual o .PRG principal.