0

有人用 mingw 使用 libraw 吗?我正在尝试编译一个程序并得到以下错误:

obj\Release\inc\img\cimg.o:cimg.cpp|| undefined reference to `_imp___ZN6LibRawC1Ej'|
obj\Release\inc\img\cimg.o:cimg.cpp|| undefined reference to `_imp___ZN6LibRaw9open_fileEPKcx'|
obj\Release\inc\img\cimg.o:cimg.cpp|| undefined reference to `_imp___ZN6LibRaw6unpackEv'|
obj\Release\inc\img\cimg.o:cimg.cpp|| undefined reference to `_imp___ZN6LibRaw13dcraw_processEv'|
obj\Release\inc\img\cimg.o:cimg.cpp|| undefined reference to `_imp___ZN6LibRaw20dcraw_make_mem_imageEPi'|
obj\Release\inc\img\cimg.o:cimg.cpp|| undefined reference to `_imp___ZN6LibRaw7recycleEv'|
obj\Release\inc\img\cimg.o:cimg.cpp:(.text$_ZN6LibRawD1Ev[LibRaw::~LibRaw()]+0xf)||undefined reference to `_imp___ZN6LibRaw7recycleEv'|
||=== Build finished: 7 errors, 0 warnings ===|

我将 libraw.a 添加到我的项目中。想不出问题。有人有想法吗?

4

1 回答 1

1

从这些符号名称来看,您似乎正在尝试针对 libraw 的 DLL 版本进行编译(由_imp___前缀暗示)。检查您的 libraw 头文件并确保函数名称没有类似__declspec(dllimport)__attribute__((dllimport))前面的任何内容。这些有时会被宏定义隐藏,因此请检查头文件以查看您是否可以定义另一个宏,这将导致它不在函数原型中使用该属性。

于 2012-10-16T14:29:24.540 回答