0

我尝试为 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 未定义?

4

2 回答 2

0

LZ4_compressBound()内定义lz4.c

文档指出,为了使用/link lz4hc,还需要lz4https ://github.com/lz4/lz4/tree/dev/lib#high-compression-variant

于 2018-12-09T22:55:35.920 回答
0

静态链接和动态链接都不起作用。

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 个其他副本中)。

于 2018-10-27T03:28:32.163 回答