• 5233阅读
  • 1回复

qt下如何使用别的编译器编译好的库 [复制链接]

上一主题 下一主题
离线gogotha
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-11
打算用QT作一个图像处理的软件,主要功能都在一个以前做好的库里面了。这个库是用vs2005编译的。
在QT里面链接这个库的时候,出现了很多错误。比如
Warning: .drectve `/manifestdependency:"type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'" ' unrecognized
Warning: .drectve `-defaultlib:"uuid.lib" ' unrecognized
Warning: .drectve `-defaultlib:"uuid.lib" ' unrecognized
Warning: .drectve `-defaultlib:"libiomp5md" ' unrecognized
Warning: .drectve `-defaultlib:"libmmd" ' unrecognized
Warning: .drectve `-defaultlib:"MSVCRT" ' unrecognized
Warning: .drectve `-defaultlib:"libirc" ' unrecognized
Warning: .drectve `-defaultlib:"svml_disp" ' unrecognized
Warning: .drectve `-defaultlib:"OLDNAMES" ' unrecognized
Warning: .drectve `-defaultlib:"libdecimal" ' unrecognized
Warning: .drectve `/manifestdependency:"type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'" ' unrecognized

fvmd.lib(ia32-win-vc8/work/md/oal/oalaloc.obj):..\OAL\win32\alal:(.text[_fv_a_malloc]+0xa): undefined reference to `_imp___a_malloc'
fvmd.lib(ia32-win-vc8/work/md/oal/oalaloc.obj):..\OAL\win32\alal:(.text[_fv_a_free]+0x6): undefined reference to `_imp___a_free'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_measure_execute.obj):..\FIE\fv_measure:(.text[_fnfv_msr_get_moment1]+0xd9): undefined reference to `_mulall'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_measure_execute.obj):..\FIE\fv_measure:(.text[_fnfv_msr_get_moment1]+0xf6): undefined reference to `_mulall'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_measure_execute.obj):..\FIE\fv_measure:(.text[_fnfv_msr_get_moment2]+0x163): undefined reference to `_mulall'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_measure_execute.obj):..\FIE\fv_measure:(.text[_fnfv_msr_get_moment2]+0x188): undefined reference to `_mulall'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_measure_execute.obj):..\FIE\fv_measure:(.text[_fnfv_msr_get_moment2]+0x1a1): undefined reference to `_mulall'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_measure_execute.obj):..\FIE\fv_measure:(.text[_fnfv_msr_get_moment2]+0x1c6): more undefined references to `_mulall' follow
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x18f): undefined reference to `__lm_sse2_log'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x19c): undefined reference to `__lm_sse2_exp'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x1a3): undefined reference to `__lm_sse2_cbrt'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x1c4): undefined reference to `__lm_sse2_log'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x1d1): undefined reference to `__lm_sse2_exp'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x1de): undefined reference to `__lm_sse2_cbrt'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x1ff): undefined reference to `__lm_sse2_log'
fvmd.lib(ia32-win-vc8/work/md/fie/fv_color_convert.obj):..\FIE\fv_color_c:(.text[__Lab_fst_uc8]+0x20c): undefined reference to `__lm_sse2_exp'

我想编译器不同不应该导致一个Lib不能被使用。我在qt里面用IPP库就可以。
请教各位大牛,这种错误该怎么入手解决?
谢谢
离线yj_yulin

只看该作者 1楼 发表于: 2010-01-14
把原来的库编译成dll的动态库,这样换编译器时会方便些,
当然,还有很多讲究的,编译参数还要匹配的,如/mt /mtd 是否启用了unicode等,还用c和c++的调用方式,慢慢试试,更多的还得搜索.
快速回复
限100 字节
 
上一个 下一个