nasm 长(或绝对)路径无法打开输出文件(在 cygwin 上)

nasm with long (or absolute) path unable to open output file (on cygwin)

我花了很多时间无法理解为什么 nasm“无法打开输出文件”。

如果我从包含我的 asm 文件的文件夹调用 nasm 它可以工作(使用相对路径)但不能使用绝对路径:

XXX@YYY /cygdrive/c/Perso/Code/boringssl/crypto/chacha
$ /cygdrive/c/Program\ Files/NASM/nasm.exe /cygdrive/c/Perso/Code/boringssl/crypto/chacha/chacha.asm
/cygdrive/c/Perso/Code/boringssl/crypto/chacha/chacha.asm: fatal: unable to open output file `/cygdrive/c/Perso/Code/boringssl/crypto/chacha/chacha'

XXX@YYY /cygdrive/c/Perso/Code/boringssl/crypto/chacha
$ /cygdrive/c/Program\ Files/NASM/nasm.exe chacha.asm  
 >>>> This will work     

我尝试使用一些相对路径并找到这个

XXX@YYY /cygdrive/c/Perso/Code/boringssl/crypto/chacha
$ /cygdrive/c/Program\ Files/NASM/nasm.exe ../../../../../../c/Perso/Code/boringssl/crypto/chacha/chacha.asm
../../../../../../c/Perso/Code/boringssl/crypto/chacha/chacha.asm: fatal: unable to open output file `../../../../../../c/Perso/Code/boringssl/crypto/chacha/chacha'

XXX@YYY /cygdrive/c/Perso/Code/boringssl/crypto/chacha
$ /cygdrive/c/Program\ Files/NASM/nasm.exe ../../../../../Perso/Code/boringssl/crypto/chacha/chacha.asm  
 >>>> This will work  

即使使用“/tmp/chacha.asm”

,我也无法使用绝对路径

我也尝试使用 2 个不同版本的 cygwin,但结果相同。

我的 nasm 版本是“2020 年 8 月 28 日编译的 NASM 版本 2.15.05”

我无法弄清楚 nasm 需要使用绝对路径(或大的相对路径)

您正在使用 Windows NASM,因此它无法将 cygwin 特定路径理解为 /cygdrive/c/Perso/Code/boringssl/crypto/chacha

或者你使用 Windows PATH 或者你使用 Cygwin NASM 包

https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fnasm%2Fnasm-2.13.01-1&grep=nasm