在具有最新XCode的MacOS Catalina上,__DARWIN_C_LEVEL对于String.h来说太低了我该怎么办?

问题描述

我正在开始新工作。我是Windows专家,已经在Microsoft堆栈中工作了数十年。这项新工作要求在Mac上完成工作,而我将使用直接的C代码进行工作。这很有趣,我隐约记得在90年代中期很少使用它。但是我遇到了一个问题。当我尝试编译代码(命令行工具上的“ make”命令)时,会引发错误...

我正在学习的代码库正在尝试使用string.h包含文件中定义的*strdup(const char *__s1)函数/方法。当我查看该标头时,会看到它的定义位置 ,但是它周围有一个预处理器if块,看起来像...

#if __DARWIN_C_LEVEL >= 200112L

在线查找__DARWIN_C_LEVEL变量...我看到有人问它是什么,但是如果您的值太低,我没有看到有关该怎么做的任何信息。我试图寻找一种方法来更改配置文件或计算机上的某些内容,以使该值足够高,但我找不到。我需要更新某些内容,以便代码实现我想要的功能吗?

作为补充说明,在此代码库中执行任何操作的唯一其他人可以在直接的Linux机器上工作,并使用Vi编辑代码。显然,他是代码库和环境方面的专家,但不知道如何帮助在MacOS上运行它。

任何帮助将不胜感激。

编辑2020年11月9日

如果这可以解释问题,我开始相信我实际上没有最新版本的XCode。我还没有得到答复,但是我想问的是有关在工作中该部分的帮助。

我也在尝试建议。当我尝试std = gnu11 ...的选项...

make -std=gnu11
/Library/Developer/CommandLinetools/usr/bin/make: invalid option -- =
/Library/Developer/CommandLinetools/usr/bin/make: invalid option -- g
/Library/Developer/CommandLinetools/usr/bin/make: invalid option -- u
/Library/Developer/CommandLinetools/usr/bin/make: invalid option -- 1
/Library/Developer/CommandLinetools/usr/bin/make: invalid option -- 1

如果我删除等号,它似乎更喜欢它,但仍然有错误...

make -std gnu11
[...]
No implicit rule found for 'gnu11'.
 Finished prerequisites of target file 'gnu11'.
Must remake target 'gnu11'.
make: *** No rule to make target `gnu11'.  Stop.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)