我尝试为 LZ4HC 创建一个可执行文件(我使用了 lz4 主页的源代码),但是当我尝试执行该文件时,它显示“符号错误 LZ4_compressBound undefined”。静态链接和动态链接都不起作用。
gcc -shared -ggdb3 -fPIC -o lz4hc.h lz4hc.c
或者
gcc -c lz4hc.c -o lz4hc.o
ar rcs lz4hc.a lz4hc.o
为什么链接后符号 LZ4_compressBound 未定义?
我尝试为 LZ4HC 创建一个可执行文件(我使用了 lz4 主页的源代码),但是当我尝试执行该文件时,它显示“符号错误 LZ4_compressBound undefined”。静态链接和动态链接都不起作用。
gcc -shared -ggdb3 -fPIC -o lz4hc.h lz4hc.c
或者
gcc -c lz4hc.c -o lz4hc.o
ar rcs lz4hc.a lz4hc.o
为什么链接后符号 LZ4_compressBound 未定义?
LZ4_compressBound()
内定义lz4.c
。
文档指出,为了使用/link lz4hc
,还需要lz4
:
https ://github.com/lz4/lz4/tree/dev/lib#high-compression-variant
静态链接和动态链接都不起作用。
gcc -shared -ggdb3 -fPIC -o lz4hc.h lz4hc.c
上面的命令符合lz4hc.c
一个名为lz4hc.h
. 这几乎肯定不是你想要的。
gcc -c lz4hc.c -o lz4hc.o
ar rcs lz4hc.a lz4hc.o
这些命令生成lz4hc.a
(正确)但不执行任何实际链接。
我猜您的实际链接命令看起来像gcc lz4hc.a main.o
,在这种情况下,您的问题是这个问题的副本(在 100 个其他副本中)。