首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不存在在gcc-4.2.1上的Mac 10.6.8 -如何定义它?

不存在在gcc-4.2.1上的Mac 10.6.8 -如何定义它?
EN

Stack Overflow用户
提问于 2015-09-08 22:53:37
回答 1查看 1.2K关注 0票数 5

我正在构建一个跨平台的OS最新版本的dcraw.c,我在OSX10.6.8上这样做是为了实现PPC的兼容性。现在我的问题是,strnlen似乎在这个程序的最新版本中被使用了,而它在10.6.8中并不存在,gcc给了我这样的信息:

代码语言:javascript
复制
Undefined symbols for architecture i386:
  "_strnlen", referenced from:
...
Undefined symbols for architecture ppc:
  "_strnlen", referenced from:
...

所以,我只想给strnlen下个定义,但不太知道怎么定义。

Q:,谁能提供一个在dgra.c中使用的strnlen的工作定义?

我的gcc编译命令是:

代码语言:javascript
复制
gcc -o dcraw -O4 -Wall -force_cpusubtype_ALL -mmacosx-version-min=10.4 -arch i386 -arch ppc dcraw.c -lm -DNODEPS
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-08 23:05:18

斯特伦是一个GNU扩展,也是在POSIX中指定的(IEEE 1003.1-2008年)。如果strnlen不可用(从10.7开始),请使用以下替换。

代码语言:javascript
复制
// Use this if strnlen is missing.
size_t strnlen(const char *str, size_t max)
{
    const char *end = memchr (str, 0, max);
    return end ? (size_t)(end - str) : max;
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32468480

复制
相关文章

相似问题

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