gpt4 book ai didi

c - 如何使这个 1996 年的 makefile 起作用?

转载 作者:可可西里 更新时间:2023-11-01 11:24:48 27 4
gpt4 key购买 nike

这是 1996 年旧 GSM 标准的 make 文件。我需要让它在运行 OSX 10.11.6 的 MacBook 或 Windows 7 的大学计算机上运行。Windows 没有安装 nmake在谷歌搜索之后,这个问题似乎是一个解决方案。

有没有办法绕过 makefile 的使用?

此外,将 CDIR 和 UTILSDIR 更改为完整路径在我的 Mac 上还不够。

make -f makefile.mak

仍然返回

TCC -A -I/Users/Henrik/Desktop/GSMHR2/DISK/c -Fc -ml -c /Users/Henrik/Desktop/GSMHR2/DISK/c/gsm_hr.c
make: TCC: No such file or directory
make: *** [gsm_hr.obj] Error 1

我假设 TCDIR 也会出现类似的问题这是完整的 makefile.mak 内容:

#
# makefile for GSM Half-Rate Speech Codec
# Version 5.0.0
# November 8, 1996
#
.SUFFIXES: .out .obj .c .e .r .f .y .l .s .p .os
CC=TCC
CDIR=..\c
UTILSDIR=..\utils

TCDIR=c:/turboc/lib
CAlsoDef=-A -I$(CDIR) -Fc -ml
CDefault=$(CAlsoDef)
CDefaultExec=$(CAlsoDef)

# installation
install: gsm_hr reid swapbin tosnwild topcwild

# EXACT files
globdefs.obj: $(CDIR)/globdefs.c
$(CC) $(CDefault) -c $?
mathdp31.obj: $(CDIR)/mathdp31.c
$(CC) $(CDefault) -c $?
mathhalf.obj: $(CDIR)/mathhalf.c
$(CC) $(CDefault) -c $?

#
# speech coder: analysis and synthesis
# object files
#
dtx.obj: $(CDIR)/dtx.c
$(CC) $(CDefault) -c $?
err_conc.obj: $(CDIR)/err_conc.c
$(CC) $(CDefault) -c $?
homing.obj: $(CDIR)/homing.c
$(CC) $(CDefault) -c $?
sp_dec.obj: $(CDIR)/sp_dec.c
$(CC) $(CDefault) -c $?
sp_enc.obj: $(CDIR)/sp_enc.c
$(CC) $(CDefault) -c $?
sp_rom.obj: $(CDIR)/sp_rom.c
$(CC) $(CDefault) -c $?
sp_sfrm.obj: $(CDIR)/sp_sfrm.c
$(CC) $(CDefault) -c $?
sp_frm.obj: $(CDIR)/sp_frm.c
$(CC) $(CDefault) -c $?
vad.obj: $(CDIR)/vad.c
$(CC) $(CDefault) -c $?

# Host files
host.obj: $(CDIR)/host.c
$(CC) $(CDefault) -c $?

# main program
gsm_hr.obj: $(CDIR)/gsm_hr.c
$(CC) $(CDefault) -c $?

# utility programs
reid.obj: $(UTILSDIR)/reid.c
$(CC) $(CDefault) -c $?
swapbin.obj: $(UTILSDIR)/swapbin.c
$(CC) $(CDefault) -c $?
topcwild.obj: $(UTILSDIR)/topcwild.c
$(CC) $(CDefault) -c $?
tosnwild.obj: $(UTILSDIR)/tosnwild.c
$(CC) $(CDefault) -c $?

# *********************** symbols ******************************************

EXACT3 = globdefs.obj mathdp31.obj mathhalf.obj

SPEECH = sp_dec.obj sp_enc.obj sp_frm.obj sp_rom.obj sp_sfrm.obj

GSM_HR = $(EXACT3) $(SPEECH) dtx.obj err_conc.obj host.obj homing.obj vad.obj


#*********************** executables **************************************

# main program
gsm_hr: gsm_hr.obj $(GSM_HR)
$(CC) $(CDefaultExec) -egsm_hr.exe @gsm_hr.rsp

# utility programs
reid: reid.obj
$(CC) $(CDefaultExec) -ereid.exe reid.obj
swapbin: swapbin.obj
$(CC) $(CDefaultExec) -eswapbin.exe swapbin.obj
tosnwild: tosnwild.obj
$(CC) $(CDefaultExec) -etosnwild.exe tosnwild.obj
topcwild: topcwild.obj
$(CC) $(CDefaultExec) -etopcwild.exe topcwild.obj

可在此处找到完整文件 https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=281

最佳答案

  1. 删除 CC=TCC。这是对古老的 DOS C 编译器 (Turbo C) 的引用。

  2. CDIRUTILSDIR 中的反斜杠替换为正斜杠。路径中的反斜杠是 MS-DOS 风格。

  3. CAlsoDef=-A -I$(CDIR) -Fc -ml 替换为 CAlsoDef=-I$(CDIR)。其他选项特定于 TCC。

  4. 希望源码不要改动太多。祝你好运。

关于c - 如何使这个 1996 年的 makefile 起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com