sgan81 / apfs-fuse

FUSE driver for APFS (Apple File System)
GNU General Public License v2.0
1.74k stars 164 forks source link

Compile errors #118

Open Pendastew opened 4 years ago

Pendastew commented 4 years ago

Hi there,

Not sure what im doing wrong, the following errors/warnings appear when trying to build on 10.13.6

/Users/thomaswakely/apfs-fuse/apfsfuse/ApfsFuse.cpp:667:38: warning: unused parameter 'data' [-Wunused-parameter]

static int apfs_parse_fuse_opt(void data, const char arg, int key, struct fuse_args outargs) ^ /Users/thomaswakely/apfs-fuse/apfsfuse/ApfsFuse.cpp:667:88: warning: unused parameter 'outargs' [-Wunused-parameter] static int apfs_parse_fuse_opt(void data, const char arg, int key, struct fuse_args outargs) ^ /Users/thomaswakely/apfs-fuse/apfsfuse/ApfsFuse.cpp:920:7: error: no matching function for call to 'fuse_session_new' se = fuse_session_new(&args, &ops, sizeof(ops), nullptr); ^~~~ /usr/local/include/osxfuse/fuse/fuse_lowlevel.h:1646:22: note: candidate function not viable: requires 2 arguments, but 4 were provided struct fuse_session fuse_session_new(struct fuse_session_ops op, void data); ^ /Users/thomaswakely/apfs-fuse/apfsfuse/ApfsFuse.cpp:925:8: error: use of undeclared identifier 'fuse_session_mount'; did you mean 'fuse_session_new'? if (fuse_session_mount(se, mountpoint) == 0) ^~~~~~ fuse_session_new /usr/local/include/osxfuse/fuse/fuse_lowlevel.h:1646:22: note: 'fuse_session_new' declared here struct fuse_session fuse_session_new(struct fuse_session_ops op, void data); ^ /Users/thomaswakely/apfs-fuse/apfsfuse/ApfsFuse.cpp:925:27: error: cannot initialize a parameter of type 'struct fuse_session_ops ' with an lvalue of type 'struct fuse_session ' if (fuse_session_mount(se, mountpoint) == 0) ^~ /usr/local/include/osxfuse/fuse/fuse_lowlevel.h:1646:64: note: passing argument to parameter 'op' here struct fuse_session fuse_session_new(struct fuse_session_ops op, void *data); ^ /Users/thomaswakely/apfs-fuse/apfsfuse/ApfsFuse.cpp:932:5: error: use of undeclared identifier 'fuse_session_unmount' fuse_session_unmount(se); ^ 2 warnings and 4 errors generated. make[2]: [CMakeFiles/apfs-fuse.dir/apfsfuse/ApfsFuse.cpp.o] Error 1 make[1]: [CMakeFiles/apfs-fuse.dir/all] Error 2 make: *** [all] Error 2

pjockey commented 4 years ago

I'm getting compiling errors as well. Mine is a bit different.

$ make
[ 16%] Built target lzfse
[ 81%] Built target apfs
[ 87%] Built target apfs-dump
[ 89%] Building CXX object CMakeFiles/apfs-fuse.dir/apfsfuse/ApfsFuse.cpp.o
/home/scott/apfs-fuse/apfsfuse/ApfsFuse.cpp:31:10: fatal error: fuse3/fuse.h: No such file or directory
 #include <fuse3/fuse.h>
          ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/apfs-fuse.dir/build.make:63: CMakeFiles/apfs-fuse.dir/apfsfuse/ApfsFuse.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:149: CMakeFiles/apfs-fuse.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

From the error, I installed fuse3, and it pulled libfuse3-3. This still did not work, so back into Synaptic and located and installed the libfues3-dev. The package then compiled.

I'm using MX-Linux 19.1 which is based on Debian 10 for other users.

derekja commented 4 years ago

great, thanks. was necessary on ubuntu 19.04 as well.

jonaslejon commented 4 years ago

On Ubuntu 16.04.6 LTS compile error:

97%] Building CXX object CMakeFiles/apfs-fuse.dir/apfsfuse/ApfsFuse.cpp.o /home/je/apfs-fuse/apfsfuse/ApfsFuse.cpp:31:24: fatal error: fuse3/fuse.h: Filen eller katalogen finns inte compilation terminated. CMakeFiles/apfs-fuse.dir/build.make:62: receptet för målet ”CMakeFiles/apfs-fuse.dir/apfsfuse/ApfsFuse.cpp.o” misslyckades make[2]: *** [CMakeFiles/apfs-fuse.dir/apfsfuse/ApfsFuse.cpp.o] Fel 1 CMakeFiles/Makefile2:256: receptet för målet ”CMakeFiles/apfs-fuse.dir/all” misslyckades make[1]: *** [CMakeFiles/apfs-fuse.dir/all] Fel 2 Makefile:127: receptet för målet ”all” misslyckades make: *** [all] Fel 2

jonaslejon commented 4 years ago

The following works when fuse3/fuse.h is missing:

Now run make again and it should work.

bjohnson135 commented 4 years ago

@jonaslejon I'm on a 32 bit system and receiving the same error `/home/benjamin/apfs-fuse/apfsfuse/ApfsFuse.cpp:31:10: fatal error: fuse3/fuse.h: No such file or directory

include <fuse3/fuse.h>`

Disabling Fuse3 produces this: error: static assertion failed: Sorry, on 32-bit systems, you need to use FUSE-3.

Any way around this issue?

BraveSentry commented 4 years ago

@jonaslejon for me it was not hitting q but hitting c (to configure) and then the newly appeared option g (to generate and quit). With just hitting q, the changes were not saved.