• 4711阅读
  • 3回复

[提问]请教如何在QtCreator里配置才能在Windows上编译第三方库ImageMagick?在线等,急!!! [复制链接]

上一主题 下一主题
离线619351349
 

只看楼主 倒序阅读 楼主  发表于: 2016-08-14
ImageMagick是处理图形文件的利器,提供了很多编程语言的接口,所以我选择C++接口并与Qt相结合,但在编译的过程中发现了很多问题也发现自己对编译第三方库有很多疑问(当然这些疑问我也百度过了,但依旧未解)。
疑问1.如果我用MingW编译器一个版本编译出来的静态库或者动态库,能否让MingW另一个版本引用?
疑问2.如果我用MingW编译器编译出来的静态库或者动态库,能否让VS编译器引用?
疑问3.我在ImageMagick官方网站上获取到了C++接口的源代码按理使用MingW、VS、包括Borland C++编译器应该都可以编译,毕竟接口的代码是纯C和纯C++的,和平台无关,那为什么我使用QtCreator+MingW编译通不过呢?按照官方提供的教程貌似要下载Cygwin来模拟Linux环境来进行编译,为什么需要这么做呢?

谁能给我一个答案,让我能够在QtCreator+Mingw上成功编译ImageMagick?
离线stlcours

只看该作者 1楼 发表于: 2016-08-17
没试过整合两者。但是根据自己项目的知识,尝试回答一下:
1. 低版本的MinGW编译的静态库可以让高版本的MINGW使用,但前提是这个库的作者在写的时候,也要注意这个问题。参见QT的D指针方法,具体请搜索“二进制兼容”。动态库一般情况下都可以相互使用。
2. 一般情况下静态编译的结果不能让VS编译器使用。个别情况可以通过.a到.LIB转换工具试试。网上有相关文章。动态库应该可以让VS使用,除非你使用了某些MINGW与VS对C++有不同解释的地方(好像有十几处)
3. 我想还是没有现成的编译工具链的原因吧。如果是纯C++,理论上确实可以让所有平台使用,但没有人去提供所有平台的工具链啊。另外,你最好确认一下,ImageMagick真的是纯C++和与平台无关吗?这个要看它的代码才能知道。

爱莫能助,你可以到stackoverflow上去问问。有初步答案了,不要忘了上来说一声。
离线619351349

只看该作者 2楼 发表于: 2016-08-17
朋友您好,感谢你的回答。
关于ImageMagick,它的代码确实是跨平台的,查看了里面某些代码,使用了宏来判断操作系统和编译器,官方也说明了ImageMagick在各个平台上的编译结果,url:http://www.imagemagick.org/Magick++/Install.html。
按照官方的说明,需要使用Cygwin或者Msys 配合 mingw 编译器来编译ImageMagick,但我试过了./configure成功 make 失败,如果朋友你有时间能否指点我一下?能否告知你的QQ与我?我的QQ是:619351349。
谢谢!
离线619351349

只看该作者 3楼 发表于: 2016-08-17
回 stlcours 的帖子
stlcours:
没试过整合两者。但是根据自己项目的知识,尝试回答一下:
1. 低版本的MinGW编译的静态库可以让高版本的MINGW使用,但前提是这个库的作者在写的时候,也要注意这个问题。参见QT的D指针方法,具体请搜索“二进制兼容”。动态库一般情况下都可以相互使用。
2. 一般情况下静态编译的结果不能让VS编译器使用。个别情况可以通过.a到.LIB转换工具试试。网上有相关文章。动态库应该可以让VS使用,除非你使用了某些MINGW与VS对C++有不同解释的地方(好像有十几处)
3. 我想还是没有现成的编译工具链的原因吧。如果是纯C++,理论上确实可以让所有平台使用,但没有人去提供所有平台的工具链啊。另外,你最好确认一下,ImageMagick真的是纯C++和与平台无关吗?这个要看它的代码才能知道。
.......

朋友您好,感谢你的回答。
关于ImageMagick,它的代码确实是跨平台的,查看了里面某些代码,使用了宏来判断操作系统和编译器,官方也说明了ImageMagick在各个平台上的编译结果,url:http://www.imagemagick.org/Magick++/Install.html。
按照官方的说明,需要使用Cygwin或者Msys 配合 mingw 编译器来编译ImageMagick,但我试过了./configure成功 make 失败,如果朋友你有时间能否指点我一下?能否告知你的QQ与我?我的QQ是:619351349。
谢谢!
快速回复
限100 字节
 
上一个 下一个