使用Cygwin,我需要将64位NASM dll链接到C库。我用NASM编译并与gcc的ld链接。但是,ld报告无论我尝试什么,它都找不到C库。
NASM编译字符串是:
nasm -f elf64 Cyg64_01.asm
ld链接器字符串是:
ld Cyg64_01.o -l cygwin1.dll -o Cyg64_01.so --verbose
仅使用cygwin1而不是cygwin1.dll会得到相同的结果。
Cygwin手册说它的C库是newlib,但链接到newlib不起作用。 Stack Overflow上的一篇文章说:“Cygwin上的C库是cygwin1.dll(cygwin包的一部分),它基于newlib”所以我使用cygwin1.dll,位于Cygwin64 \ bin中。
使用详细选项,我看到Cygwin没有搜索Cygwin64 \ bin \库,但如果我包含完整路径,它仍然找不到它。
在Cygwin手册的“Mapping Path Names”部分中,它说新的路径被添加到Cygwin Mount Table中;使用linux mount命令,我看到Cygwin64 \ bin \已经在mount表中。
我的问题是:(1)我是否链接到正确的C库(对于汇编程序,而不是C或C ++程序),以及(2)我是否需要以不同方式引用该路径?
感谢您的帮助。