我正在构建一个跨平台的OS最新版本的dcraw.c,我在OSX10.6.8上这样做是为了实现PPC的兼容性。现在我的问题是,strnlen似乎在这个程序的最新版本中被使用了,而它在10.6.8中并不存在,gcc给了我这样的信息:
Undefined symbols for architecture i386:
"_strnlen", referenced from:
...
Undefined symbols for architecture ppc:
"_strnlen", referenced from:
...所以,我只想给strnlen下个定义,但不太知道怎么定义。
Q:,谁能提供一个在dgra.c中使用的strnlen的工作定义?
我的gcc编译命令是:
gcc -o dcraw -O4 -Wall -force_cpusubtype_ALL -mmacosx-version-min=10.4 -arch i386 -arch ppc dcraw.c -lm -DNODEPS发布于 2015-09-08 23:05:18
斯特伦是一个GNU扩展,也是在POSIX中指定的(IEEE 1003.1-2008年)。如果strnlen不可用(从10.7开始),请使用以下替换。
// 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;
}https://stackoverflow.com/questions/32468480
复制相似问题