最近,我尝试使用C/C++编写Android应用程序的本地代码。问题出在使用Android NDK时制作符号链接时。通过一些搜索,有人建议使用Cygwin。我现在已经安装了它。如何在Windows 7中使用Cygwin创建符号链接?
最近,我尝试使用C/C++编写Android应用程序的本地代码。问题出在使用Android NDK时制作符号链接时。通过一些搜索,有人建议使用Cygwin。我现在已经安装了它。如何在Windows 7中使用Cygwin创建符号链接?
简而言之,定义以下环境变量:
CYGWIN=winsymlinks:nativestrict
根据Cygwin文档:winsymlinks:native
或winsymlinks:nativestrict
,在支持它们的文件系统和操作系统版本上,Cygwin会将符号链接创建为本机Windows符号链接。
winsymlinks:native
和winsymlinks:nativestrict
之间的区别在于:如果文件系统支持本机符号链接并且由于某些原因Cygwin无法创建本机符号链接,则使用winsymlinks:native
会回退到创建Cygwin默认符号链接;而使用winsymlinks:nativestrict
则会立即失败symlink(2)
系统调用。mintty
快捷方式属性,高级→以管理员身份运行)。CYGWIN=winsymlinks:native
对于许多不同的工作流程都是错误的。如果您可以接受“回退到创建Cygwin默认符号链接”,那么为什么要首先尝试使用本机呢? 如果有人需要“本机”,那么...他们就需要“本机”。唯一正确的选项是“CYGWIN=winsymlinks:nativestrict”! - Victor Yarema使用通常的命令可以轻松为Windows 7创建符号链接:
ln -s
答案是设置Cygwin并安装所需包,如make
等。
请清楚阅读要求:Android NDK
ln -s 目标文件 新文件
该命令用于创建一个符号链接,将目标文件链接到新文件。这个新文件可以被认为是指向源文件的快捷方式,也就是说,当你打开新文件时,实际上是打开了目标文件。其中 -s
参数表示创建软链接。 - Abdullln -s
的默认行为似乎是创建文本文件。 - PJTraill我们曾经遇到过类似的问题,并找到了之前答案中未记录的解决方案。
我们需要一种方法来创建一个远程目录链接,可以在Cygwin和Windows 7上都能够工作,指向一个远程Samba(Linux)共享。
我们在Windows PowerShell中使用了这个命令,它起作用了。
CMD /C MKLINK /D C:\local_dir_path\dir \\\\192.168.0.1\remote_dir_path\dir
上述命令可以创建一个在两个目录中都有效的链接。
当然,请根据您的需要更改本地和远程目录。
ln -s 在Cygwin中可用,但在Windows中不可用。
在Windows资源管理器(文件夹视图)中使用“创建链接”命令可以在Windows中工作,但在Cygwin中不起作用。
在Cygwin中输入类似于上面的命令也无法正常工作,我们并没有完全理解原因。也许与字符串或路径的转换有关。