使用带有msvc工具集的gcc生成的库

时间:2014-08-03 00:15:17

标签: visual-c++ mingw gtkmm

经过几天的苦苦挣扎,我不知何故设法用MinGW工具在windows下构建最新的gtkmm 3.10库。 生成的输出有gcc扩展名,即。(*。a * .dll.a * .la) 这一切都很好,我正在使用代码::块与MinGW链接到库,但我想知道是否有可能将这些图书馆与MSVC ++ - 12.0工具集链接到visual studio 2013? 所以我不必再使用gnu工具了。 如果是,那该怎么办呢?谢谢。

2 个答案:

答案 0 :(得分:1)

请注意,gtkmm是一个c ++库,而c ++ 具有稳定的abi(应用程序二进制接口)。这意味着在同一编译器的不同版本下编译的静态库可能无法正常工作。这就是为什么它建议为你的c ++ app / lib重新编译c ++库,所以一切都有相同的编译器构建它。

如果您在VS2012中构建应用程序,则需要使用您将使用的VS2012版本编译gtkmm。

但并非所有人都永远失去了! Herb Sutter提出了创造一个稳定的abi。 https://isocpp.org/files/papers/n4028.pdf

答案 1 :(得分:0)

再次感谢我,不是我回答了我自己的问题,而是想为那些阅读此问答的人提供一些额外的信息。

正如我所说,我构建了自己的gtkmm库,并且无法构建库的问题出现在code :: blocks中,此时代码:块让我在找出构建解决方案之前花费了很多时间你的gtkmm应用程序是删除code :: block并使用你自己的manualy类型编译标志在命令行上编译manualy。 原因是code :: block没有正确保存我的seetings所以我有未定义的引用。