如何使用不同版本的mingw构建静态库?

时间:2010-09-16 11:31:03

标签: c++ static version mingw

问候, 我正面临着在windows下使用静态库的复杂情况。 静态库由mingw的特定版本构建,该版本与Eiffel studio捆绑在一起。由于Eiffel studio使用mingw将其输出创建为静态库,因此我无法控制此配置。 如果我尝试将此静态库与使用更新版mingw的Eclipse CDT一起使用,那么我无法编译我的项目。这是因为我必须为诸如winsock之类的各种库提供-l选项,并且由于生成静态库和我的代码的编译器版本之间的差异而出现,这不起作用。

如果我强制Eclipse使用Eiffel Studio附带的同一个mingw目录,编译静态lib的那个目录,那么我可以编译我的代码(虽然这里有一些其他问题) 我不想仅仅因为使用特定版本的mingw构建静态库来约束我的c ++开发。

那么如何从我自己的mingw版本中使用这个静态库呢?这是windows xp btw ..

最诚挚的问候 谢雷夫

1 个答案:

答案 0 :(得分:1)

虽然我这里没有很多信息,但我会这样做:

  1. 尝试使用较新版本的mingw进行编译,看看是否可以使其正常工作。在这种情况下,错误非常重要(您还应该查看mingw手册/邮件列表/论坛,以了解mingw版本之间的兼容性

  2. 将库与程序分开并包装其所有功能 - 以避免不同的不兼容的编译标志(您可以创建一个不同的库 - 甚至是DLL并调用您的新函数(包装器为一些图书馆功能)

  3. 决定项目的哪一部分是强制性的 - 包含库或其余代码的部分

    1. 如果库是必需的,我会使用该版本的mingw
    2. 编译代码
    3. 否则我会尝试找到该库的等效文件或将其删除
  4. 其他选项可能可用,但这就是我要做的(按此顺序)