如何在Mac上打开并使用1996年的旧ANSI C代码?

如何在Mac上打开并使用1996年的旧ANSI C代码?,c,xcode,macos,gsm,ansi,C,Xcode,Macos,Gsm,Ansi,对于uni项目,我必须使用1996年GSM语音编码标准中提供的ANSI C代码。 可以在这里找到zip存档 我有一台运行OS X 10.11.6的MacBook Pro 使用clang在终端中安装xcode,尝试编译其/C目录(主目录)中的所有不同文件时: clang dtx.c err_conc.c globdefs.c gsm_hr.c homing.c host.c mathdp31.c mathhalf.c sp_dec.c sp_enc.c sp_frm.c SP_rom.c sp_

对于uni项目,我必须使用1996年GSM语音编码标准中提供的ANSI C代码。 可以在这里找到zip存档

我有一台运行OS X 10.11.6的MacBook Pro

使用clang在终端中安装xcode,尝试编译其/C目录(主目录)中的所有不同文件时:

clang dtx.c err_conc.c globdefs.c gsm_hr.c homing.c host.c mathdp31.c mathhalf.c sp_dec.c sp_enc.c sp_frm.c SP_rom.c sp_sfrm.c utils.c vad.c male.inp -o GSMHR
它会产生多个错误,如:

In file included from dtx.c:37:
./mathhalf.h:75:11: warning: incompatible redeclaration of library function 'round' [-Wincompatible-library-redeclaration]
Shortword round(Longword L_var1);      /* 1 ops */
我想这是因为新编译器定义了当时没有定义的函数

不管怎样,对我来说,使这段代码可用的最简单的方法是什么?

POSIX(和其他标准化机构)定义一个C函数
round
,它接受并返回浮点类型。在
mathhalf.h
文件中声明的函数
round
可能在
mathhalf.c
文件中实现,并获取和返回整数类型(显然是32位和16位)。此函数与编译器附带的
冲突


假设该函数是在
mathhalf.c
中实现的,只需在.c和.h文件中将其重命名为
intRound

是否有
-std=c89
选项使您不知何故失败?当我做类似工作时,我使用“sed”重命名下载文件中所有冲突的函数。是1996年的mac posix吗?@user3528438否,但201x MacOS X和叮当声是不一样的。没有人在谈论1996年的Mac电脑。是的,搜索所有文件并将所有内容更改为rounded()有效。我还对如何将comand-line参数传递给它感到困惑,但我现在明白了。非常感谢。