Compilar com harbour Ubuntu 15.10 64 bits

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

Moderador: Moderadores

arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por arcanjoebc »

Amigos, há muito venho tentando conseguir um compilador para um pequeno projeto que tenho, feito com meus conhecimentos em DBase III Plus e um pouco de Clipper, mas não encontrava a ferramenta. Agora, baixei um pacote ".deb" e instalei no meu Ubuntu 15.10 64 bits. Consegui criar o fonte ".c" mas, na hora de lincá-lo, não tenho êxito, pois ocorre um erro que não sei do que se trata ... alguém pode me ajudar? Abaixo, coloco à disposição as mensagens de erro e, se precisarem dos fontes, posso enviar futuramente, se preciso for, é claro!

Código: Selecionar todos

everaldo@positivo:~/clientes$ gedit cli.prg
everaldo@positivo:~/clientes$ harbour -k cli.prg
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'cli.prg'...
Cannot open STRUC.prg, assumed external
Compiling 'cli01.prg'...
Compiling 'cli02.prg'...
Compiling 'cli03.prg'...
Compiling 'cli04.prg'...
Lines 75, Functions/Procedures 5
Generating C source output to 'cli.c'... Done.
everaldo@positivo:~/clientes$ gcc -o cli cli.c
cli.c:7:21: fatal error: hbvmpub.h: Arquivo ou diretório não encontrado
compilation terminated.
everaldo@positivo:~/clientes$ ls
cli01.prg  cli02.prg  cli03.prg  cli04.prg  cli.c  cli.prg  cli.prg~  help.txt  struc.prg
Taciane
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 14 Nov 2015 16:28
Localização: Buritizeiro/MG

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por Taciane »

Olá,
Fatal error: hbvmpub.h: Arquivo ou diretório não encontrado
No Windows este arquivo fica na pasta include, qualquer coisa faça um download e coloque-o na pasta.Creio que no LInux deva ser o mesmo principio.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por JoséQuintas »

Teste compilar usando o utilitário que existe no Harbour: hbmk2.exe
Acredito que também faça parte do Harbour no Linux.
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/
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por arcanjoebc »

Amigo JoséQuintas, eu até encontrei o hbmk2 mas, quando o executo, dá uma sequência de erros que não sei como resolver ... abaixo, coloco o que acontece:

Código: Selecionar todos

everaldo@positivo:~/clientes$ sudo /usr/bin/hbmk2 cli cli.c
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'cli.prg'...
Compiling 'struc.prg'...
Compiling 'cli01.prg'...
Compiling 'cli02.prg'...
Compiling 'cli03.prg'...
Compiling 'cli04.prg'...
Lines 75, Functions/Procedures 6
Generating C source output to '/tmp/hbmk_ws2p19.dir/cli.c'... Done.
/tmp/hbmk_ws2p19.dir/cli.o: na função `HB_FUN_CLI':
cli.c:(.text+0x0): múltipla definição de `HB_FUN_CLI'
/tmp/hbmk_ws2p19.dir/cli.o:cli.c:(.text+0x0): definido primeiramente aqui
/tmp/hbmk_ws2p19.dir/cli.o: na função `HB_FUN_MAIN':
cli.c:(.text+0x20): múltipla definição de `HB_FUN_MAIN'
/tmp/hbmk_ws2p19.dir/cli.o:cli.c:(.text+0x20): definido primeiramente aqui
/tmp/hbmk_ws2p19.dir/cli.o: na função `HB_FUN_CLI01':
cli.c:(.text+0x40): múltipla definição de `HB_FUN_CLI01'
/tmp/hbmk_ws2p19.dir/cli.o:cli.c:(.text+0x40): definido primeiramente aqui
/tmp/hbmk_ws2p19.dir/cli.o: na função `HB_FUN_CLI02':
cli.c:(.text+0x60): múltipla definição de `HB_FUN_CLI02'
/tmp/hbmk_ws2p19.dir/cli.o:cli.c:(.text+0x60): definido primeiramente aqui
/tmp/hbmk_ws2p19.dir/cli.o: na função `HB_FUN_CLI03':
cli.c:(.text+0x80): múltipla definição de `HB_FUN_CLI03'
/tmp/hbmk_ws2p19.dir/cli.o:cli.c:(.text+0x80): definido primeiramente aqui
/tmp/hbmk_ws2p19.dir/cli.o: na função `HB_FUN_CLI04':
cli.c:(.text+0xa0): múltipla definição de `HB_FUN_CLI04'
/tmp/hbmk_ws2p19.dir/cli.o:cli.c:(.text+0xa0): definido primeiramente aqui
/usr/bin/ld: ignorando /usr/lib/harbour/libhbcplr.a incompatível ao procurar por -lhbcplr
/usr/bin/ld: não foi possível encontrar -lhbcplr
/usr/bin/ld: ignorando /usr/lib/harbour/libhbdebug.a incompatível ao procurar por -lhbdebug
/usr/bin/ld: não foi possível encontrar -lhbdebug
/usr/bin/ld: ignorando /usr/lib/harbour/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/../lib/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/gcc/x86_64-linux-gnu/5/../../../libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: não foi possível encontrar -lharbour
collect2: error: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc '/tmp/hbmk_ws2p19.dir/cli.o' '/tmp/hbmk_ws2p19.dir/cli.o'   -Wl,--start-group -lhbcplr -lhbdebug -lharbour   -Wl,--end-group -ocli -L/usr/lib/harbour
Uma suposição é que o harbour esteja desconfigurado ... mas pode não ser, o que achas? Aguardo contato!

Everaldo
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por JoséQuintas »

Não entendi porque aparece o comando assim

Código: Selecionar todos

hbmk2 cli cli.c
Bom... está mostrando como funções repetidas.
Talvez seu arquivo de compilação esteja errado.

comece acrescentando nos parâmetros -m
Isso evita que fontes sejam puxados automaticamente, o que pode acabar causando duplicidade.
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/
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por arcanjoebc »

JoséQuintas, primeiramente, estou me baseando que o comando "hbmk2" funcione da mesma forma que o "gcc", então, por isso a chamada: "/usr/bin/hbmk2 cli cli.c, onde "cli" é o executável a ser gerado e "cli.c" o fonte a ser compilado e linkado, ok! Fiz o procedimento que me aconselhastes mas, novamente, não obtive êxito. Veja abaixo:

Código: Selecionar todos

everaldo@positivo:~/clientes$ sudo /usr/bin/hbmk2 -m cli cli.c
[sudo] senha para everaldo: 
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'cli.prg'...
Lines 41, Functions/Procedures 1
Generating C source output to '/tmp/hbmk_635uww.dir/cli.c'... Done.
/tmp/hbmk_635uww.dir/cli.o: na função `HB_FUN_CLI':
cli.c:(.text+0x0): múltipla definição de `HB_FUN_CLI'
/tmp/hbmk_635uww.dir/cli.o:cli.c:(.text+0x0): definido primeiramente aqui
/tmp/hbmk_635uww.dir/cli.o: na função `HB_FUN_MAIN':
cli.c:(.text+0x20): múltipla definição de `HB_FUN_MAIN'
/tmp/hbmk_635uww.dir/cli.o:cli.c:(.text+0x20): definido primeiramente aqui
/tmp/hbmk_635uww.dir/cli.o: na função `HB_FUN_CLI01':
cli.c:(.text+0x40): múltipla definição de `HB_FUN_CLI01'
/tmp/hbmk_635uww.dir/cli.o:cli.c:(.text+0x40): definido primeiramente aqui
/tmp/hbmk_635uww.dir/cli.o: na função `HB_FUN_CLI02':
cli.c:(.text+0x60): múltipla definição de `HB_FUN_CLI02'
/tmp/hbmk_635uww.dir/cli.o:cli.c:(.text+0x60): definido primeiramente aqui
/tmp/hbmk_635uww.dir/cli.o: na função `HB_FUN_CLI03':
cli.c:(.text+0x80): múltipla definição de `HB_FUN_CLI03'
/tmp/hbmk_635uww.dir/cli.o:cli.c:(.text+0x80): definido primeiramente aqui
/tmp/hbmk_635uww.dir/cli.o: na função `HB_FUN_CLI04':
cli.c:(.text+0xa0): múltipla definição de `HB_FUN_CLI04'
/tmp/hbmk_635uww.dir/cli.o:cli.c:(.text+0xa0): definido primeiramente aqui
/usr/bin/ld: ignorando /usr/lib/harbour/libhbcplr.a incompatível ao procurar por -lhbcplr
/usr/bin/ld: não foi possível encontrar -lhbcplr
/usr/bin/ld: ignorando /usr/lib/harbour/libhbdebug.a incompatível ao procurar por -lhbdebug
/usr/bin/ld: não foi possível encontrar -lhbdebug
/usr/bin/ld: ignorando /usr/lib/harbour/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/../lib/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/gcc/x86_64-linux-gnu/5/../../../libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: ignorando /usr/lib/libharbour.so incompatível ao procurar por -lharbour
/usr/bin/ld: não foi possível encontrar -lharbour
collect2: error: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc '/tmp/hbmk_635uww.dir/cli.o' '/tmp/hbmk_635uww.dir/cli.o' '/tmp/hbmk_635uww.dir/hbmk_4qy1yz.o'   -Wl,--start-group -lhbcplr -lhbdebug -lharbour   -Wl,--end-group -ocli -L/usr/lib/harbour
Aguardo contato e obrigado pelas explicações, tudo de bom!

Everaldo
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compilar com harbour Ubuntu 15.10 64 bits

Mensagem por JoséQuintas »

Pra especificar nome do EXE é -o

Do jeito que está fazendo, está compilando cli.prg + cli.c, por isso a duplicidade.
Se tem muitas procedures/functions em cli.prg, vai acusar duplicidade em tudo.

Se é o único fonte, é só hbmk2 cli.prg

Se tem mais fontes, é hbmk2 cli.prg outro.prg outro2.prg -m -ocli

Ao que parece, ainda vai restar o erro de incompatibilidade de LIBs.
Nessa parte já tem a ver com Linux, e já foge do meu conhecimento.
O que imagino é que as LIBs possam ser de acordo com a distribuição do Linux.
Mas neste caso quem desenvolve em Linux vai poder dizer melhor.
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/
Responder