我正在尝试使用xlsLib从C++应用程序创建Excel电子表格.
麻烦的是编译xlsLib,我给了一个.a文件(由MinGW生成的GCC静态库).但是,我的应用程序依赖于另一个PhysX仅使用Visual Studio编译的API().
因此:是否可以将GCC静态库(xlslib.a)转换为Visual Studio静态库文件(xlslib.lib)?
我正在使用GNU binutils在Windows上使用程序集构建一个dll.
我知道可以在加载可执行文件时或在运行时加载dll(使用LoadLibrary api调用).
对于加载时加载,我似乎只需要dll文件:不需要.a,.lib或.def文件.我想知道这些文件格式代表什么,它们的用途是什么.
我所知道的和一些具体问题:
.a是Unix上通常用于静态库的扩展..a文件是使用GNU ld 的--out-implib选项生成的.它被认为是一个"进口图书馆",足够公平.问题是"如果我在链接时不需要它,那对我来说有什么用?"
.lib是Windows上用于静态库的扩展,根据维基百科,在windows下也被用作"导入库",所以我强烈怀疑它们只是binutils调用.a文件的另一个名称.真假 ?
我可以找到的所有页面都指出.def文件列出了dll的导出符号.这与"导入库"应该做的有点类似吗?
另外,我在这里读到使用.def文件是在源文件中手动指定导出的替代方法(我做过).但我还记得读取(找不到引用).def文件为导出的符号提供索引(序号),允许更快的运行时加载.是这样吗 ?