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
我花了很多时间无法理解为什么 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