我正在试图弄清楚如何在我的项目中创建库并一般使用多个文件。
然而,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文件。我该怎么办?
答案 0 :(得分:0)
在Windows上,共享库的后缀为.dll
,而不是.so
。如果您有一个为Windows生成共享库的Makefile,则它们应该具有.dll
扩展名。
同样在Windows上,使用import libraries,这就是为什么你会看到
尝试打开lib / hello.lib失败 尝试打开lib / libhello.dll失败