make 命令在 MacOS Big Sur - 11.5.2 上不起作用
make command does not work on MacOS Big Sur - 11.5.2
我正在尝试在 Swift 项目中使用 C 库的示例。
下面是参考link
https://medium.com/bumble-tech/bundling-c-library-in-swift-framework-3d9dae950774
C 库文件link
https://sourceforge.net/projects/giflib/files/
按照教程 link 中的说明,解压缩代码并通过终端转到文件夹并使用 make 命令,work.I 不会尝试在 MAC 上执行此操作oS 大苏尔。
下面是错误
**ABC-MacBook-Pro:giflib-5.2.1 abc$ make**
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 -shared -Wl,-install_name -Wl,libutil.so.7 -o libutil.so qprintf.o quantize.o getarg.o
Undefined symbols for architecture x86_64:
"_GifErrorString", referenced from:
_PrintGifError in qprintf.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libutil.so] Error 1
改变
USOURCES = qprintf.c quantize.c getarg.c
至此
USOURCES = qprintf.c quantize.c getarg.c gif_err.c
里面 Makefile
。另外,更改这些行:
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
...
...
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libutil.so.$(LIBMAJOR) -o libutil.so $(UOBJECTS)
到
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-install_name -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
...
...
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-install_name -Wl,libutil.so.$(LIBMAJOR) -o libutil.so $(UOBJECTS)
会完成工作
> make
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 -c -o dgif_lib.o dgif_lib.c
warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]
...
...
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 gifwedge.c libgif.a libutil.a libgif.a -lm -o gifwedge
warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]
1 warning generated.
为了跳过xmlto
执行,移除
# $(MAKE) -C doc
我正在尝试在 Swift 项目中使用 C 库的示例。 下面是参考link
https://medium.com/bumble-tech/bundling-c-library-in-swift-framework-3d9dae950774
C 库文件link https://sourceforge.net/projects/giflib/files/
按照教程 link 中的说明,解压缩代码并通过终端转到文件夹并使用 make 命令,work.I 不会尝试在 MAC 上执行此操作oS 大苏尔。 下面是错误
**ABC-MacBook-Pro:giflib-5.2.1 abc$ make**
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 -shared -Wl,-install_name -Wl,libutil.so.7 -o libutil.so qprintf.o quantize.o getarg.o
Undefined symbols for architecture x86_64:
"_GifErrorString", referenced from:
_PrintGifError in qprintf.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libutil.so] Error 1
改变
USOURCES = qprintf.c quantize.c getarg.c
至此
USOURCES = qprintf.c quantize.c getarg.c gif_err.c
里面 Makefile
。另外,更改这些行:
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
...
...
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libutil.so.$(LIBMAJOR) -o libutil.so $(UOBJECTS)
到
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-install_name -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
...
...
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-install_name -Wl,libutil.so.$(LIBMAJOR) -o libutil.so $(UOBJECTS)
会完成工作
> make
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 -c -o dgif_lib.o dgif_lib.c
warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]
...
...
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 gifwedge.c libgif.a libutil.a libgif.a -lm -o gifwedge
warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]
1 warning generated.
为了跳过xmlto
执行,移除
# $(MAKE) -C doc