Página 1 de 1
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 24 Dez 2015 00:08
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
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 24 Dez 2015 06:36
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.
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 26 Dez 2015 00:02
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.
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 26 Dez 2015 22:18
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
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 27 Dez 2015 02:38
por JoséQuintas
Não entendi porque aparece o comando assim
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.
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 27 Dez 2015 18:26
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
Compilar com harbour Ubuntu 15.10 64 bits
Enviado: 27 Dez 2015 20:03
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.