Cygwin使用ld

时间:2018-02-13 18:01:51

标签: c gcc cygwin nasm

使用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)我是否需要以不同方式引用该路径?

感谢您的帮助。

0 个答案:

没有答案