Página 1 de 1

PRGs com nomes iguais

Enviado: 17 Fev 2011 23:49
por =NuNuNO= Griesbach
Olá a todos,

Tenho um hbp para gerar uma lib, conforme o apresentado abaixo:

Código: Selecionar todos

-hblib

-es2
-w

-IEasyWay/include
-lhwguidyn
-lxhb
-lhbmysql
-llibmysql.dll
-lmysqlclient.lib

EasyWay/EasyWay.prg
EasyWay/Exception.prg
EasyWay/Db/Pdo/Abstract.prg
EasyWay/Db/Pdo/MySql/Driver.prg
EasyWay/EasyWay/Object.prg
EasyWay/Db.prg
EasyWay/Db/Pdo/Sql/Abstract.prg
O problema é que os arquivos EasyWay/Db/Pdo/Sql/Abstract.prg e EasyWay/Db/Pdo/Abstract.prg embora estejam em diretórios diferentes, possuem o mesmo nome, fazendo com que o .c e o .o gerados pelo hbmk2 sejam sobrescritos. Existe alguma maneira de gerar os .o e ,c respeitando a estrutura de pastas? Ou então na mesma pasta onde estão os PRGs?

Um grande abraço

=NuNuNO==
(Que não quer renomear, quer organizar...)

Re: PRGs com nomes iguais

Enviado: 18 Fev 2011 12:58
por =NuNuNO= Griesbach
Olá a todos!

Então, resolvi este problema de uma maneira um pouco fora de moda, porém, ficou bastante eficaz. Seguindo as normas POG para confecção de bacalhais, escrevi um pequeno programa que varre a estrutura de diretórios e copia o conteudo de todos os .PRGs e .CH para dentro de um PRG único, assim, como o nome de minhas classes são únicos, o fato do nome dos PRGs serem repetidos não influencia mais na compilação. De quebra, resolvi outro problema que estava enfrentando que era o de não poder instanciar objetos através de macros, quando as classes estavam dentro de minha lib. :-D

Imaginando que este programa possa ser util para mais alguém (embora isso pareça bastante improvável) adicionei o arquivo "demode.zip" (mesmo sem muito orgulho) na seção de downloads, contendo o fonte e um executável para windows 32.

Um grande abraço

=NuNuNO==
( Que se está começando o projeto desta maneira, nem imagina como terminará... )

Re: PRGs com nomes iguais

Enviado: 22 Fev 2011 09:45
por jamazevedo
Olá Nununo.
O erro ocorre porque o Harbour cria uma pasta ".hbmk", nela ficam todos os arquivos temporários e transitórios para geração do executável, apesar do PRG está em pastas diferente, no momento da compilação eles vem todos para a pasta acima, ficando apenas o último "Abstract.prg" declarado.
Dica: troque logo o nome de um dos PRG's para não ter problemas no futuro.

Re: PRGs com nomes iguais

Enviado: 22 Fev 2011 12:48
por =NuNuNO= Griesbach
Hehehehe...O problema mais difícil de resolver é a minha teimosia. Sou teimoso até a última conseqüência. Tenho seguido em frente com meu projeto, usando o demode.exe (que publiquei na sessão de downloads), ele dificulta um pouco na hora de encontrar a linha em que um erro aconteceu, porém, nada que olhar o PRGzão gerado automáticamente não resolva... Sem falar que ele facilita bastante a compilação, basta gravar um PRG na estrutura de diretórios que ele é compilado e adicionado ao executável automaticamente, sem precisar editar o arquivo .HBP, e nem se preocupar com .OBJs desatualizados na virada do horário de verão :-)
O único problema que vejo em fazer desta maneira é que se existir algum limite de caracteres/linhas em um único PRG, em algum momento eu vou ultrapassa-lo, mas, se isto acontecer, como sou teimoso, altero os fontes do hbmk2 e faço ele respeitar a minha estrutura de diretórios (é por isso que eu amo open-source!).

Ta bom, ta bom... Seria muito mais fácil renomear os arquivos, mas, qual seria a graça disso? Hehehehe

Um grande abraço

=NuNuNO==
( Implementando abstração de base de dados para aprender a sintaxe )