Erro de ligação ao tentar compilar em uma unidade compartilhada

2

Estou tentando compilar a biblioteca OpenCV em uma unidade compartilhada no meu sistema. Eu era capaz de configurar e gerar makefiles com sucesso usando estes configurações, mas quando eu tento compilar eu recebo o seguinte erro:

Linking CXX shared library ../../lib/libopencv_core.so
CMake Error: cmake_symlink_library: System Error: Operation not permitted
CMake Error: cmake_symlink_library: System Error: Operation not permitted
make[2]: *** [lib/libopencv_core.so.2.4.3] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

Por favor ajude a resolver. Eu acho que pode ser um problema com os flags de montagem.

    
por bubble 03.01.2013 / 17:17

2 respostas

3

Isso acontece porque os sistemas de arquivos vfat type não suportam links simbólicos. Os sinalizadores de montagem não alteram esta situação.

Eu não estou familiarizado com o CMake, mas suponho que você esteja usando algum tipo de regra em seu makefile que esteja dizendo ao CMake para fazer um link simbólico para lib/libopencv_core.so.2.4.3 , que falha.

    
por bender 03.01.2013 / 20:10
1

Eu corri para o mesmo problema, porque eu estava rodando em uma caixa virtual de instanciação do ubuntu (guest), mas rodando em uma pasta compartilhada para o meu mac (host).

Como os links simbólicos são diferentes no mac, o cmake falhou. Mover o diretório de compilação para uma única pasta do Ubuntu (não compartilhada com o mac) resolveu o problema.

Moral da história - não crie pastas compartilhadas que cruzam plataformas.

    
por arinmorf 14.01.2015 / 17:46