C++ bzip2压缩在从生成的共享库使用时提供空输出

C++ bzip2压缩在从生成的共享库使用时提供空输出,c++,linux,g++,shared-libraries,static-libraries,C++,Linux,G++,Shared Libraries,Static Libraries,我试图使用bzlib库将传入的数据流压缩到一个文件中 当我运行单个程序时g++-lbz2 compress.cpp/a、 out要压缩/解压缩,它可以无缝工作 但是,当我创建一个相同代码的compress.so文件并在另一个run.so文件中调用它时,会生成压缩文件(file.bz2),但其中没有任何数据 我通过添加 -Wl,-R,/home/utils/bzip2-1.0.6/lib-Wl,-整个存档-lbz2-Wl,-没有整个存档-共享生成compress.so文件的Makefile 在运行

我试图使用bzlib库将传入的数据流压缩到一个文件中

当我运行单个程序时
g++-lbz2 compress.cpp/a、 out
要压缩/解压缩,它可以无缝工作

但是,当我创建一个相同代码的compress.so文件并在另一个run.so文件中调用它时,会生成压缩文件(file.bz2),但其中没有任何数据

我通过添加

-Wl,-R,/home/utils/bzip2-1.0.6/lib-Wl,-整个存档-lbz2-Wl,-没有整个存档-共享生成compress.so文件的Makefile

在运行时,我不会在任何地方出现任何错误。
libbzip2的链接方式是否有问题?

已修复。有两个问题——一个在我使用的图书馆里。出于某种原因,我的程序流在32位系统上工作,我使用的库是64位库。将路径更改为32位lib后,生成的压缩文件为空。问题在于我关闭代码中处理程序的方式。应该在Close()之前调用BZ2_bzCloseWrite()。