I clean up the /usr/local/lib/libfuse3.so.3 and reinstall fuse again, the problem is gone. The new location of libfuse is /usr/lib64/libfuse3.so.3. Probably the old libfuse is installed by my manual 'make install'. On 2019/9/4 8:19, piaojun wrote: > Hi Miklos, > > I encounter an error when calling fuse_new() from libfuse3.so.3, and I > wonder if I missed some macro like 'FUSE_3.1' or fuse_new() could not > be called like this? > > Hope for your help. > > --- > # ./main > ./main: /usr/local/lib/libfuse3.so.3: version `FUSE_3.1' not found (required by ./main) > > main.c: > #define FUSE_USE_VERSION 30 > #include <fuse3/fuse.h> > #include <fuse3/fuse_lowlevel.h> > > static struct fuse_operations hello_oper; > > int main(int argc, char *argv[]) > { > struct fuse_args args = FUSE_ARGS_INIT(argc, argv); > struct fuse *fs; > > fs = fuse_new(&args, &hello_oper, sizeof(hello_oper), NULL); > > return 0; > } > > --- > The fuse3-libs and devel rpm is from the following website: > > https://centos.pkgs.org/7/epel-x86_64/fuse3-devel-3.6.1-2.el7.x86_64.rpm.html > https://centos.pkgs.org/7/epel-x86_64/fuse3-libs-3.6.1-2.el7.x86_64.rpm.html > > Thanks, > Jun >