我们目前正在将一个跨平台项目(linux,osx,w32)的W32构建流程从VisualStudio切换到mingw。
我们面临的问题之一是,我们的项目创建了一个动态库(
现在,根据文档,很容易创建一个.def文件,其中包含导入库所需的所有信息:
为了使用
这显然需要在构建计算机上安装(子集)MSVC。但是,我们想要在Linux系统上跨编译整个东西(可能甚至在一些CI上),这使得安装MSVC相当麻烦。
所以我想知道是否有本地MinGW的方法将
(我们知道最终只有MSVC用户才需要导入库,并且他们将随手准备好
我们面临的问题之一是,我们的项目创建了一个动态库(
foo.dll
),第三方项目可以链接该库。为了在W32 / MSVC上实现这一点,需要一个导入库(foo.lib
)。现在,根据文档,很容易创建一个.def文件,其中包含导入库所需的所有信息:
gcc -shared -o foo.dll foo-*.o -Wl,--output-def,foo.def
为了使用
foo.def
文件,文档告诉我要使用Microsoft LIB工具从中构建一个foo.lib
文件: lib /machine:i386 /def:testdll.def
这显然需要在构建计算机上安装(子集)MSVC。但是,我们想要在Linux系统上跨编译整个东西(可能甚至在一些CI上),这使得安装MSVC相当麻烦。
所以我想知道是否有本地MinGW的方法将
foo.def
文件转换为foo.lib
导入库?(我们知道最终只有MSVC用户才需要导入库,并且他们将随手准备好
lib
工具。但是,由于我们始终发货foo.lib
文件,切换到foo.def
会破坏第三方构建系统-我们希望避免这种情况)。