我已经开始使用MinGW / MSYS试图在Windows上使用一些Linux库。使用
./configure --prefix=/mingw
make
make install
到目前为止,运行良好,但是在'ln -s'调用中,'make install'上有两个不同的库失败。它是这样的:
rm -f /mingw/lib/libvamp-sdk.so.2
ln -s libvamp-sdk.so.2.0.0 /mingw/lib/libvamp-sdk.so.2
ln: creating symbolic link `/mingw/lib/libvamp-sdk.so.2' to `libvamp-sdk.so.2.0.0': No such file or directory
make: *** [install] Error 1
首先,makefile的意图是什么? /mingw/lib/libvamp-sdk.so.2.0.0存在, 所以用
替换上面的'ln -s'调用ln -s /mingw/lib/libvamp-sdk.so.2.0.0 /mingw/lib/libvamp-sdk.so.2
会起作用,但我不确定这是否是作者的意图。
更重要的是,为什么会出现这种情况(我猜它在原生Linux系统上运行良好)以及最简单的解决方法是什么?我可以手动编辑makefile,但我想知道是否有更好的解决方案。
非常感谢您的投入!
答案 0 :(得分:3)
您错误配置了您的构建:*.so
文件适用于Linux,而不适用于Windows。您很可能需要在配置调用中添加--host=i686-pc-mingw32
之类的选项。
答案 1 :(得分:1)
在linux系统上,未修改
ln -s libvamp-sdk.so.2.0.0 /mingw/lib/libvamp-sdk.so.2
创建一个相对符号链接,使libvamp-sdk.so.2.0.0可用于链接到库的早期或后期实例的程序。但是,这只适用于基于.so的系统构建。
对于mingw构建,这些行根本不必要,因为您构建DLL而不是共享库,并且机制不同。可以安全地从Makefile中删除这两行,只需确保安装DLL和库(libfoo.a 和libfoo.dll.a ),前者在/ mingw / bin和/ mingw / lib中的后者。您可能需要修改Makefile。