Página 1 de 1

Harbour no Oracle Linux 7.9

Enviado: 03 Ago 2021 15:24
por Adilson_Araujo
Boa tarde Pessoal, sou novo aqui.

estou tentando instalar o Harbour 3.0 no Oracle Linux 7.9 mais qdo executo meu programa ./c ele da esse erro:
error while loading shared libraries: libharbour.so.3.0: cannot open shared object file: No such file or directory
tentei ldconfig e nada o erro persiste, coloquei essa lib dentro do diretorio do harbour que baixei e nada.

no SuSE 15 sp3 fiz funcionar

estou tentando assim:
# cd /opt
# mkdir harbour
# cd harbour
# wget https://github.com/vszakats/hb/archive/v3.0.0.zip
# unzip v3.0.0.zip
# cd hb-3.0.0/
# cd harbour/
# make

make install

depois vou para o diretório onde esta meu programa executo
./c e da o erro acima.

se alguém pode me ajudar agradeço muito

grato,
Adilson.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 06:20
por vailton
Recentemente tive um problema semelhante ao recompilar o Harbour em um Mac OS.
Resolvi copiando manualmente os arquivos para a pasta compartilhada do SO.

Espero ter ajudado.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 07:57
por sergiosouzalima
Olá!

Semana passada resolvi um problema parecido e fiz um post aqui
https://pctoledo.org/forum/viewto ... =4&t=25804

A mensagem de erro é muito parecida com a mensagem que recebi ao instalar
o Harbour no Linux Mint 20.2

Veja minha solução. Espero que ajude.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 11:02
por Itamar M. Lins Jr.
Olá!
A mensagem de erro é muito parecida com a mensagem que recebi ao instalar
se alguém pode me ajudar agradeço muito
1) use o harbour 3.2
E o erro sempre ocorre comigo quando esqueço de usar "sudo" no "make istall"
Todas as vezes que esqueço isso, ocorre o problema.
Basta quando for instalar o Harbour usar "sudo make install"
Para quê a instalação jogue os binários na pasta correta, "/usr/..." Pq sem acesso a pasta que está no PATH ele joga na pastas /home/ e não acha os arquivos.

Saudações,
Itamar M. Lins Jr.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 15:53
por Adilson_Araujo
Pessoal agradeço imensamente a ajuda de todos, obrigado.


Pessoal tentei de novo copiar a biblioteca para o /usr/lib como me foi indicado pelo Vailton e deu certo.

muito obrigado, Deus abençoe a todos.

Adilson.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 17:41
por JoséQuintas
No Linux o default de compilação é com compartilhamento, uso de algo similar a DLLs.
Na maioria das vezes, indicar -fullstatic resolve.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 21:05
por Adilson_Araujo
Pessoal mais uma ajuda por favor,

aqui no post o Itamar indicou a instalação do Harbour 3.2, eu procurei na internet mais acho que não baixei o certo para linux, alguém poderia me indicar o link e dizer se essa versão serve para linux?

Muito Obrigado novamente a todos, e me desculpa se estou falando bobagem pois estou aprendendo.

Grato,
Adilson

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 22:51
por Itamar M. Lins Jr.
Olá!

Código: Selecionar todos

//No KDE -> CTRL+ALT+T 
sudo apt install git
sudo apt-get install build-essential
git clone --depth=10 https://github.com/harbour/core.git hb32
cd hb32/
sudo make install
Mais simples do que no Windows.

Saudações,
Itamar M. Lins Jr.

Harbour no Oracle Linux 7.9

Enviado: 05 Ago 2021 23:03
por Itamar M. Lins Jr.
Olá!
No Linux o default de compilação é com compartilhamento, uso de algo similar a DLLs.
O problema não é esse.
Edita lá os fontes do hbmk2 e olha.
/* Detect system locations to enable shared library option by default */

Código: Selecionar todos

      IF hb_DirExists( tmp := "/usr/local/share/harbour" )
         IF Empty( hbmk[ _HBMK_cHB_INSTALL_ADD ] )
            hbmk[ _HBMK_cHB_INSTALL_CON ] := tmp + hb_ps() + _HBMK_SPECDIR_CONTRIB
            hbmk[ _HBMK_cHB_INSTALL_ADD ] := tmp + hb_ps() + _HBMK_SPECDIR_ADDONS
         ENDIF
         AAdd( hbmk[ _HBMK_aLIBPATH ], tmp + hb_ps() + _HBMK_SPECDIR_CONTRIB + hb_ps() + "%{hb_name}" )
         AAdd( hbmk[ _HBMK_aLIBPATH ], tmp + hb_ps() + _HBMK_SPECDIR_ADDONS + hb_ps() + "%{hb_name}" )
      ENDIF
      IF hb_DirExists( tmp := "/usr/share/harbour" )
         IF Empty( hbmk[ _HBMK_cHB_INSTALL_ADD ] )
            hbmk[ _HBMK_cHB_INSTALL_CON ] := tmp + hb_ps() + _HBMK_SPECDIR_CONTRIB
            hbmk[ _HBMK_cHB_INSTALL_ADD ] := tmp + hb_ps() + _HBMK_SPECDIR_ADDONS
         ENDIF
         AAdd( hbmk[ _HBMK_aLIBPATH ], tmp + hb_ps() + _HBMK_SPECDIR_CONTRIB + hb_ps() + "%{hb_name}" )
         AAdd( hbmk[ _HBMK_aLIBPATH ], tmp + hb_ps() + _HBMK_SPECDIR_ADDONS + hb_ps() + "%{hb_name}" )
      ENDIF
      IF Empty( hbmk[ _HBMK_cHB_INSTALL_ADD ] )
         hbmk[ _HBMK_cHB_INSTALL_CON ] := hb_PathNormalize( hb_DirSepAdd( hbmk[ _HBMK_cHB_INSTALL_PFX ] ) ) + _HBMK_SPECDIR_CONTRIB
         hbmk[ _HBMK_cHB_INSTALL_ADD ] := hb_PathNormalize( hb_DirSepAdd( hbmk[ _HBMK_cHB_INSTALL_PFX ] ) ) + _HBMK_SPECDIR_ADDONS
      ENDIF
   #endif
   IF Empty( hbmk[ _HBMK_cHB_INSTALL_ADD ] )
      hbmk[ _HBMK_cHB_INSTALL_CON ] := hb_PathNormalize( hb_DirSepAdd( hbmk[ _HBMK_cHB_INSTALL_PFX ] ) ) + _HBMK_SPECDIR_CONTRIB
      hbmk[ _HBMK_cHB_INSTALL_ADD ] := hb_PathNormalize( hb_DirSepAdd( hbmk[ _HBMK_cHB_INSTALL_PFX ] ) ) + _HBMK_SPECDIR_ADDONS
   ENDIF

   #if defined( __PLATFORM__UNIX )
      /* Detect system locations to enable shared library option by default */
      IF hbmk[ _HBMK_cPLAT ] == "beos"
         hbmk[ _HBMK_lSysLoc ] := ;
            LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/common"      ) .OR. ;
            LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/system"      ) .OR. ;
            LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/home/config" ) .OR. ;
            AScan( ListToArray( GetEnv( "LIBRARY_PATH" ), ":" ), {| tmp | LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_LIB ], tmp ) } ) > 0
      ELSE
         hbmk[ _HBMK_lSysLoc ] := ;
            LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/usr/local/bin" ) .OR. ;
            LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/usr/bin"       ) .OR. ;
            AScan( ListToArray( GetEnv( "LD_LIBRARY_PATH" ), ":" ), {| tmp | LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_LIB ], tmp ) } ) > 0
      ENDIF
   #endif

   RETURN
Se não usar "sudo" root no linux não dá acesso as pastas.

Saudações,
Itamar M. Lins Jr.