CMake:在ssh挂载的文件系统上安装符号链接失败。

问题描述 投票:0回答:1

我在桌面上交叉编译一个项目,并将其安装在通过ssh安装的设备上,使用sshfs,像这样。

    sudo sshfs -o allow_other -o follow_symlinks [email protected]:/ /mnt/remote

构建成功,但当我尝试 "sudo make install "时,我收到了以下消息:

    -- Installing: /mnt/remote/usr/lib/libprop.so.5.1.5
    -- Installing: /mnt/remote/usr/lib/libprop.so.5
    CMake Error: failed to create symbolic link '/mnt/remote/usr/lib/libprop.so.5': i/o error
    CMake Error at cmake_install.cmake:176 (file):file INSTALL cannot duplicate symlink
      "/home/ubuntu/libprop/build/lib/libprop.so.5" at
      "/mnt/remote/usr/lib/libprop.so.5".

库和符号链接被复制和创建了。也就是说,似乎安装真的成功了,但CMake却不这么认为。文件系统不是ro,可以在 mount 输出。

    [email protected]:/ on /mnt/remote type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

我可以看到mnt下的条目(我把它的chown和chmod改为用户访问,认为这可能会解决这个问题)。

    drwxrwxr-x 1 ubuntu ubuntu 4096 Mar 11 13:43 remote

而且我可以在没有root权限的情况下访问它,复制和删除文件都没有问题。这个过程对我来说一直是有效的。我不知道是什么改变了,它停止了。可能是我的环境或目标平台的问题。

如果有任何帮助,我将感激不尽。

linux cmake cross-compiling symlink sshfs
1个回答
0
投票

好了,我发现问题了...... 我不应该使用 -o follow_symlinks. 我想这可能会引起其他问题(我用它是有原因的),但对于编译和安装的目的,它是有效的。

© www.soinside.com 2019 - 2024. All rights reserved.