Linking error when trying to compile on a shared drive

9,661

Solution 1

This happens, because vfat type filesystems don't support symlinks. Mount flags won't change this situation.

I'm not familiar with CMake, but I suppose you are using some kind of rule in your makefile that is telling CMake to make a symbolic link to lib/libopencv_core.so.2.4.3, which fails.

Solution 2

I ran into the same problem, because I was running on a virtual box instantiation of ubuntu (guest), but running in a shared folder to my mac (host).

Because symlinks are different on the mac, cmake failed. Moving the build directory to a ubuntu only folder (not shared with the mac) solved the problem.

Moral of the story- don't build in shared folders that cross platforms.

Share:
9,661

Related videos on Youtube

bubble
Author by

bubble

Updated on September 18, 2022

Comments

  • bubble
    bubble over 1 year

    I am trying to compile the OpenCV library on a shared drive on my system. I was able to configure and generate makefiles successfully by using these settings, but when I try to compile I get the following error:

    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
    

    How do I resolve this issue?
    I think it may be an issue with the mount flags.

  • bubble
    bubble over 11 years
    will it be possible if I ntfs system ? I need a file system which is compatible with windows also.
  • bender
    bender over 11 years
    Well, try to mount your ntfs drive, then create a file inside and then execute the following command in your terminal: ln -s /path-to-ntfs-drive/name-of-file /path-to-ntfs-drive/symlink-name. If this works without an error, then I suppose you will be able to run CMake on ntfs drive. If you get an error, then verify that your drive is mounted via ntfs-3g driver (mount will say that type is fuseblk).