Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用makefile检查符号链接是否存在,如果不存在则创建';T_Linux_Shell_Makefile - Fatal编程技术网

Linux 使用makefile检查符号链接是否存在,如果不存在则创建';T

Linux 使用makefile检查符号链接是否存在,如果不存在则创建';T,linux,shell,makefile,Linux,Shell,Makefile,在makefile中,我需要检查符号链接include/libraries/libxyz.so是否存在。如果不是,我想通过运行 ln -s libxyz.so.1 libxyz.so 包括/图书馆。如何执行此操作?如果您使用的是bash,则可以在makefile中添加以下shell说明: if[-f include/libraries/libxyz.so];然后呼应“某物”;else ln-s include/libraries/libxyz.so.1 include/libraries/li

在makefile中,我需要检查符号链接include/libraries/libxyz.so是否存在。如果不是,我想通过运行

ln -s libxyz.so.1 libxyz.so

包括/图书馆。如何执行此操作?

如果您使用的是bash,则可以在makefile中添加以下shell说明:

if[-f include/libraries/libxyz.so];然后呼应“某物”;else ln-s include/libraries/libxyz.so.1 include/libraries/libxyz.so;回声“链接”;fi
此规则适用于:

include/libraries/libxyz.so:
    ln -s libxyz.so.1 $@

是否还要检查目标文件是否是链接,如果文件/链接已经存在,您会怎么做?目标始终是链接,如果它已经存在,请打印一些内容不使用的原因:include/libraries/libxyz.so:ln-fs libxyz.so.1$@ln的-f选项将强制删除现有文件(请参阅ln--help)库libxyz.so.1在“include/libraries/”中,那么会是什么呢change@melwin_jose根据您的评论和问题更新位置
if[-f include/libraries/libuv.so]];然后回显“符号链接存在”;否则将重复“创建符号链接…”;ln-s include/libraries/libuv.so.1 include/libraries/libuv.so;fi
正在创建符号链接。。。ln:创建符号链接“include/libraries/libuv.so”失败:文件存在,生成:**[default]错误1。。。如果[-L'include/libraries/libuv.so'],这就是我第二次运行它时得到的
if[-L'include/libuv.so'];然后回显“libuv.so符号链接存在”;else echo“创建符号链接libuv.so…”;cd-include/libraries/;ln-s libuv.so.1 libuv.so;fi
这对我来说很有效,因为gcc无法选择链接的长路径library@melwin_jose-L不够,因为可能已经存在同名的文件。是否要提供更多解释?