Visual Studio错误LNK2001:无法解析的外部符号_fgetc_unlocked

C.O*_*.O. 3 c++ visual-studio

我正在尝试从http://www.ece.uvic.ca/~frodo/jasper/使用libjasper 作为静态库,以从http://www.cybercom.net/~dcoffin/dcraw/编译dcraw.c 在带有VC9的Windows上。我已经解决了几个问题,最后遇到了三个链接错误。

1>dcraw.obj : error LNK2001: unresolved external symbol _ftello
1>dcraw.obj : error LNK2001: unresolved external symbol _fseeko
1>dcraw.obj : error LNK2001: unresolved external symbol _getc_unlocked
Run Code Online (Sandbox Code Playgroud)

我补充说,其中的前两个很容易解决

#define fseeko _fseeki64
#define ftello _ftelli64
Run Code Online (Sandbox Code Playgroud)

这样就可以了,但是第三个呢?

1>dcraw.obj : error LNK2001: unresolved external symbol _getc_unlocked
Run Code Online (Sandbox Code Playgroud)

如何使用Visual Studio在Windows上解决该问题?

谢谢。

小智 5

的实际等效getc_unlocked值不是getc,而是_fgetc_nolock。因此,假设谁写的原代码,就知道他在做什么,并有一些理由更喜欢线程安全的版本,你可能想

#define getc_unlocked _fgetc_nolock
Run Code Online (Sandbox Code Playgroud)