错误1: libarchive.a 在编译时报如下错误
Undefined symbols for architecture x86_64: "_LZ4_COMPRESSBOUND", referenced from: _lz4_filter_read_legacy_stream in libarchive.a(archive_read_support_filter_lz4.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决方法是在项目中找到这个源文件,把对函数 LZ4_COMPRESSBOUND
的调用改为LZ4_compressBound
具体步骤如下:
首先使用命令找出文件 archive_read_support_filter_lz4.c
所在路径,然后进入到这个项目中,执行 make clean 对项目编译缓存进行清理。
➜ VLCKit git:(master) ✗ find . -name archive_read_support_filter_lz4.c ./libvlc/vlc/contrib/vlckitbuild/libarchive/libarchive/archive_read_support_filter_lz4.c ./libvlc/vlc/extras/tools/cmake/Utilities/cmlibarchive/libarchive/archive_read_support_filter_lz4.c ➜ VLCKit git:(master) ✗ cd ./libvlc/vlc/contrib/vlckitbuild/libarchive/ ➜ libarchive git:(master) ✗ make clean
再然后使用文本编辑器打开 archive_read_support_filter_lz4.c
文件,把 LZ4_COMPRESSBOUND
替换为LZ4_compressBound