gpt4 book ai didi

makefile - 如何用clang编译c99-to-c89转换器?

转载 作者:行者123 更新时间:2023-12-04 23:05:35 33 4
gpt4 key购买 nike

我正在尝试在 Windows 中为 VisualStudio 编译 ffmpeg,其中一个步骤是编译 c99-to-c89根据 this 的 clang 代码邮政。我设法创建了 clang.exe,但我如何用它编译 c99-to-c89 代码?

我将 c99-to-c89 中的 makefile 稍微改了一下,所以 CC变量现在指向 clang.exe 编译器而不是 cl.exe

EXT=.exe

all: c99conv$(EXT) c99wrap$(EXT)

CLANGDIR=C:/build
CC=C:/build/bin/Release/clang.exe
CFLAGS=-nologo -Z7 -D_CRT_SECURE_NO_WARNINGS=1 -Dpopen=_popen -Dunlink=_unlink -Dstrdup=_strdup -Dsnprintf=_snprintf -I. -I$(CLANGDIR)/tools/clang/include
LDFLAGS=-nologo -Z7 $(CLANGDIR)/lib/Release/libclang.lib

clean:
rm -f c99conv$(EXT) c99wrap$(EXT) convert.o compilewrap.o
rm -f unit.c.c unit2.c.c

test1: c99conv$(EXT)
$(CC) -P unit.c -Fiunit.prev.c
./c99conv unit.prev.c unit.post.c
diff -u unit.{prev,post}.c

test2: c99conv$(EXT)
$(CC) -P unit2.c -Fiunit2.prev.c
./c99conv unit2.prev.c unit2.post.c
diff -u unit2.{prev,post}.c

test3: c99conv$(EXT)
$(CC) $(CFLAGS) -P -Ficonvert.prev.c convert.c
./c99conv convert.prev.c convert.post.c
diff -u convert.{prev,post}.c

c99conv$(EXT): convert.o
$(CC) -Fe$@ $< $(LDFLAGS) $(LIBS)

c99wrap$(EXT): compilewrap.o
$(CC) -Fe$@ $< $(LDFLAGS)

%.o: %.c
$(CC) $(CFLAGS) -Fo$@ -c $<

但是当我运行 make命令我得到 clang: error: unsupported use of internal gcc -Z option '-Z7' .我猜是 CFLAGS 中的问题和 LDFLAGS但我不知道如何解决它,因为缺乏makefile和clang的知识。

最佳答案

如果有人仍然需要,来自 libav 的人为我提供了 this下载二进制文件的链接c99conv.exe , c99wrap.exe , makedef

关于makefile - 如何用clang编译c99-to-c89转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13475775/

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