Using bzlib in C on macOS Catalina - "ld: symbol(s) not found for architecture x86_64", "clang: error: linker command failed with exit code 1"

Using bzlib in C on macOS Catalina - "ld: symbol(s) not found for architecture x86_64", "clang: error: linker command failed with exit code 1"

我正在尝试在 macOS Catalina 上编译 C 程序。该程序将使用 bzip2 解压缩。我的代码包括行

#include <bzlib.h>

我正在尝试调用函数 BZ2_bzBuffToBuffDecompress。但是,当我 运行 gcc myfile.c -o myfile.c.o 时,出现以下错误:

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1

我只使用纯文本编辑器和 gcc,没有 IDE 也没有 CMake 文件。我怀疑我可能需要一个 CMake 文件,但我不确定如何继续。非常感谢任何帮助!

您需要 link 在 bzip 库中。 gcc myfile.c -o myfile -lbz2。该命令假定 lib 已安装到标准位置。此外,您正在编译最终的可执行文件,因此(按照严格的约定)它不应该有 .o 后缀。