Я пытаюсь скомпилировать библиотеку OpenCV по общему диску в моей системе. Я смог настроить и генерировать make-файлы успешно при помощи этих настроек, но когда я пытаюсь скомпилировать, я получаю следующую ошибку:
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
Помогите решить. Я думаю, что это может быть проблема с флагами монтирования.
Я столкнулся с той же проблемой, потому что работал на виртуальной машине с экземпляром ubuntu (guest), но работал в общей папке на моем mac (host).
Поскольку символьные ссылки различаются на Mac, cmake не удалось. Перемещение директории сборки в папку только с Ubuntu (не используемую совместно с Mac) решило проблему.
Мораль истории - не создавайте общие папки, которые пересекают платформы.
Это происходит потому, что файловые системы типа vfat
не поддерживают символические ссылки. Флаги монтирования не изменят эту ситуацию.
Я не знаком с CMake, но я полагаю, что вы используете какое-то правило в вашем make-файле, которое говорит CMake сделать символическую ссылку на lib/libopencv_core.so.2.4.3
, что не удается.