我有一个与调用 C++ 库有关的问题。库编译成功。之后,该库由正常的可执行程序调用。但是,发生了几个链接错误。我举一个例子来说明我的问题。
我已经下载了旧版本的 TIFF 库(版本 3.6.1),然后将其编译为静态库:tiff.lib
. 之后,我编写了一个可执行程序,通过调用该库来读写 TIFF 文件。但是,会出现以下错误:
2>tiff.lib(tif_jpeg.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_lzw.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_dirinfo.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_luv.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_pixarlog.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_zip.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_dirwrite.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_write.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
2>tiff.lib(tif_dirread.obj) : error LNK2001: unresolved external symbol __TIFFmalloc
我不明白为什么我会收到tiff.lib
已成功构建的链接错误,并且我的可执行程序也已成功链接它。如果有问题tiff.lib
,我希望在构建 lib 时的编译和链接过程中会出现链接错误。任何想法将不胜感激!
编辑:我添加了一些细节以找到解决方案。tiff.lib
构建为静态库,当我使用dumpbin.exe /exports tiff.lib
显示库中导出的所有定义时,会给出以下消息:
Dump of file tiff.lib
File Type: LIBRARY
Summary
3B8 .bss
9405 .data
D5640 .debug$S
C38 .debug$T
C4E .drectve
19E79 .rdata
84 .rtc$IMZ
84 .rtc$TMZ
3363E .text
似乎没有导出任何符号。