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

Visual c++ 使用带有msvc工具集的gcc生成的库,visual-c++,mingw,gtkmm,Visual C++,Mingw,Gtkmm,在痛苦挣扎了几天之后,我设法用MinGW工具在windows下构建了最新的gtkmm 3.10库。 生成的输出具有gcc扩展,即(*.a*.dll.a*.la) 这一切都很好,我正在使用带有MinGW的code::blocks链接到库,但我想知道是否有可能在visual studio 2013中使用MSVC++-12.0工具集链接这些库? 所以我不必再使用gnu工具了。 如果是,那么应该如何做?谢谢。 谨防,GTKMM是C++库,C++没有稳定的ABI(应用二进制接口)。这意味着在同一编译器的不

在痛苦挣扎了几天之后,我设法用MinGW工具在windows下构建了最新的gtkmm 3.10库。 生成的输出具有gcc扩展,即(*.a*.dll.a*.la) 这一切都很好,我正在使用带有MinGW的code::blocks链接到库,但我想知道是否有可能在visual studio 2013中使用MSVC++-12.0工具集链接这些库? 所以我不必再使用gnu工具了。
如果是,那么应该如何做?谢谢。

谨防,GTKMM是C++库,C++没有稳定的ABI(应用二进制接口)。这意味着在同一编译器的不同版本下编译的静态库可能无法工作。这就是为什么它建议重新编译C++库的C++应用程序/LIB,所以所有的编译器都有相同的编译。p> 如果要在VS2012中构建应用程序,则需要使用将要使用的VS2012版本编译gtkmm


但并不是所有的东西都会永远失去!赫伯·萨特(Herb Sutter)提出创建一个稳定的abi

又是我,不是我在回答我自己的问题,而是我想为那些阅读本问答的人提供一些额外的信息

正如我所说,我构建了自己的gtkmm库,无法构建这些库的问题在于代码::块,此时,“代码:块”让我苦苦挣扎了好几个小时才明白构建gtkmm应用程序的解决方案是删除code::block并使用自己的手动类型编译标志在命令行上手动编译。
原因是code::block没有正确保存我的seetings,所以我有未定义的引用。

重建必要的库对您来说不是一个解决方案?我已经阅读了此链接(使用MSVC构建确实很痛苦),它不像使用mingw那么容易。你需要时不时地调整标题,我不太了解,所以如果可能的话,我正在寻找简单的解决方案,谢谢。@ChronoKitsune也顺便说一句,你发布的链接描述了如何使用MSVC-10.0进行构建。它不适用于MSVC-12.0:)(至少不是以一种简单的方式)不幸的是,我不知道有什么办法可以将MinGW libs转换成MSVC。该页面上有一个指向提供Cmake文件的Github站点的链接,因此您可以尝试安装Cmake并生成一个可以使用的MSVC项目。除此之外,我完全不知道如何提供帮助,除了可能将CC和CXX环境变量导出到“cl.exe”中,并在执行配置脚本之前将包含该可执行文件的BIN目录添加到PATH环境变量中。。。我从来没做过,但它可能有用。祝你好运。安装程序不适用于你的MSVC版本吗?提供的gtkmm安装程序很好,但它们是用旧的MSVC版本构建的,这意味着旧的gtkmm和VS中没有C++11:/所以构建自己的东西是“必须”的,感谢你关于将MSVC环境添加到msys的输入,值得尝试(直到第一次生成错误,如果有的话):)看起来我现在正面临着这个问题,因为我现在能够在成功构建gtkmm后构建一个示例应用程序:/谢谢。