ld不是在寻找.so文件

时间:2017-01-01 14:27:55

标签: mingw ld

我正在试图弄清楚如何在我的项目中创建库并一般使用多个文件。

然而,ld报告它“找不到-lhello”(其中libhello是我的自定义库)。但是当我使用-l:libhello.so时它编译得很好。

然后我使用--verbose选项运行ld,这就是我得到的:

[...]

尝试打开lib / libhello.dll.a失败

尝试打开lib / hello.dll.a失败

尝试打开lib / libhello.a失败

尝试打开lib / hello.lib失败

尝试打开lib / libhello.dll失败

尝试打开lib / hello.dll失败

尝试打开lib \ libhello.a失败

[...]

这个列表还有很多其他目录和文件名,但结果却不是“hello.so”或“libhello.so”。我不知道为什么,但似乎ld在编译时没有查找.so文件。我该怎么办?

1 个答案:

答案 0 :(得分:0)

在Windows上,共享库的后缀为.dll,而不是.so。如果您有一个为Windows生成共享库的Makefile,则它们应该具有.dll扩展名。

同样在Windows上,使用import libraries,这就是为什么你会看到

  

尝试打开lib / hello.lib失败   尝试打开lib / libhello.dll失败