Problema como comando make [RESOLVIDO]

1. Problema como comando make [RESOLVIDO]

Matheus de Castro Oliveira
Matheus10772

(usa Linux Mint)

Enviado em 19/05/2019 - 01:31h

Oi gente. Sou estudante de cc e apesar de já utilzar linux faz um tempo, ainda tenho dificuldade com algumas coisas.

Estou tentanto instalar um software que se chama OpenCV, diponível neste link https://www.samontab.com/web/2017/06/installing-opencv-3-2-0-with-contrib-modules-in-ubuntu-16-04-lt...

Acntece que quando eu tentava rodar o comando make, era retornado a seguinte série de erros

/usr/bin/ld: não foi possível encontrar -lstdc++
/usr/bin/ld: não foi possível encontrar -lm
/usr/bin/ld: não foi possível encontrar -lgcc_s
/usr/bin/ld: não foi possível encontrar -lpthread
/usr/bin/ld: não foi possível encontrar -lc
/usr/bin/ld: não foi possível encontrar -lgcc_s
/usr/bin/ld: não foi possível encontrar /usr/lib/gcc/x86_64-linux-gnu/5/crtendS.o: Too many open files
/usr/bin/ld: não foi possível encontrar /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o: Too many open files
collect2: error: ld returned 1 exit status
modules/core/CMakeFiles/opencv_core.dir/build.make:1427: recipe for target 'lib/libopencv_core.so.3.2.0' failed
make[2]: *** [lib/libopencv_core.so.3.2.0] Error 1
CMakeFiles/Makefile2:1956: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2


ou seja, a instalçao estava tentando dificuldades para encontrar as dependencias no diretório /usr/bin/ld.
Descobri que o diretório não existe e que essas dependências estavam em um outro diretório /usr/lib/x86_64-linux-gnu
Dai tentei resolver o problema criando uma pasta chamada ld dentro da pasta bin, e dentro da pasta ld eu coloquei um link para a pasta x86_64-linux-gnu
Bem,resolveu parte do problmea, porque na pasta lib já existe um link chamado 'ld', dai para criar a pasta 'ld' eu tive que renomear o link ld, o problema é que a instalção também exige esse link ld e a pasta ld no mesmo diretório, ou seja, impossível, daí o erro ficoi assim.

collect2: fatal error: cannot find 'ld'
compilation terminated.
modules/core/CMakeFiles/opencv_core.dir/build.make:1427: recipe for target 'lib/libopencv_core.so.3.2.0' failed
make[2]: *** [lib/libopencv_core.so.3.2.0] Error 1
CMakeFiles/Makefile2:1956: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2



  


2. Re: Problema como comando make [RESOLVIDO]

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 19/05/2019 - 14:09h

Cara... tenha cuidado ao mexer nos diretórios de sistema. Não mexa neles sem ter certeza do que está fazendo. Por exemplo, os diretórios /bin e /usr/bin são destinados aos executáveis do sistema e não se deve criar nada dentro deles a não ser por processos automatizados de instalação de software. Você deveria estar ciente disso antes de pensar em mexer nele.

Sobre o ld, ele não é um diretório, e sim um binário (executável) que deveria estar dentro do diretório /usr/bin. Por isso, você não deve criar um diretório ou link simbólico com esse nome dentro de /usr/bin. O utilitário ld é um linker, que você precisa para ligar os fontes que você compilou e então poder executá-los. Na maioria das distribuições ele faz parte do pacote GNU binutils.

Os erros que você recebeu são por falta de algumas bibliotecas básicas que você precisa, inclusive a bibliteca padrão de C++ (já que o programa é C++). Então você precisa instalar no seu sistema um compilador C++ e a biblioteca padrão (por exemplo, g++ e libstdc++-<versao>-dev).

Depois que você criou esse link, o utitliário ld obviamente não podia ser mais usado, e por isso o erro mudou. Você deve desfazer isso, e instalar o compilador e a biblioteca padrão de C++.

Por fim, acredito que o pacote opencv já esteja presente nos repositórios da maioria das distros, então não faz tanto sentido assim você baixar os fontes e compilar, a não ser que precise usar uma versão diferente daquela presente nos repositórios.

---

Atenciosamente,
Hugo Cerqueira

Devuan - https://devuan.org/


3. Kali vs Ubuntu

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/05/2019 - 14:11h

Pode ser que o Kali mude algumas livrarias de local se comparado à distro mãe do Ubuntu, ou o gcc que você tem é incompatível, verifique as versões no manual do site do desenvolvedor do OpenCV... Pode ser que você tenha mais sorte instalando ele numa máquina virtual do Ubuntu, com as versões todas batendo em compatibilidade...




4. Re: Problema como comando make [RESOLVIDO]

Matheus de Castro Oliveira
Matheus10772

(usa Linux Mint)

Enviado em 20/05/2019 - 01:28h



Resolvi o problema. Eu so mandei instalar o openCV no diretório raiz que tudo funcinou. Vai entender.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts