apfs-fuse
apfs-fuse copied to clipboard
Compile errors
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
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.
great, thanks. was necessary on ubuntu 19.04 as well.
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
The following works when fuse3/fuse.h is missing:
- sudo apt install cmake-curses-gui
- ccmake .
- Arrow down to USE_FUSE3 and press enter (change to OFF)
- Press q
Now run make again and it should work.
@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?
@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.