首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio错误LNK2001:未解析的外部符号_fgetc_unlocked

Visual Studio错误LNK2001:未解析的外部符号_fgetc_unlocked
EN

Stack Overflow用户
提问于 2012-02-03 00:26:19
回答 4查看 2.1K关注 0票数 3

我正在尝试使用来自http://www.ece.uvic.ca/~frodo/jasper/的libjasper作为一个静态库,在带有VC9的windows上编译来自http://www.cybercom.net/~dcoffin/dcraw/的dcraw.c。在此过程中,我解决了几个问题,最终得到了三个链接错误。

代码语言:javascript
复制
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

前两个问题似乎很容易解决,我补充道。

代码语言:javascript
复制
#define fseeko _fseeki64
#define ftello _ftelli64

这就完成了,但是第三个呢:

代码语言:javascript
复制
1>dcraw.obj : error LNK2001: unresolved external symbol _getc_unlocked

我如何在windows中用visual studio解决这个问题呢?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-03 00:56:14

getc_unlocked的实际等价物不是getc,而是_fgetc_nolock。因此,假设编写原始代码的人知道他在做什么,并且有一些理由倾向于使用线程不安全的版本,那么您可能希望这样做

代码语言:javascript
复制
#define getc_unlocked _fgetc_nolock
票数 5
EN

Stack Overflow用户

发布于 2012-02-03 00:48:36

代码语言:javascript
复制
#define getc_unlocked _fgetc_nolock

唯一的区别是getc是线程安全的(而且可能更慢)。

http://pubs.opengroup.org/onlinepubs/000095399/functions/getc_unlocked.html

编辑:正如@Fanael在另一个答案中指出的那样,_fgetc_nolock是比getc更好的替代品。

票数 1
EN

Stack Overflow用户

发布于 2012-02-03 00:50:21

这是一个posix函数,不是在win32上,只需这样做

#define getc_unlocked fgetc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9115932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档