5

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.

Alexis Wilke
  • 2,707
bubble
  • 389

2 Answers2

6

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.

bender
  • 1,814
  • will it be possible if I ntfs system ? I need a file system which is compatible with windows also. – bubble Jan 04 '13 at 09:43
  • 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). – bender Jan 04 '13 at 12:27
3

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.

arinmorf
  • 141
  • 3