apfs-fuse icon indicating copy to clipboard operation
apfs-fuse copied to clipboard

Compile errors

Open Pendastew opened this issue 4 years ago • 6 comments

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

Pendastew avatar Mar 02 '20 04:03 Pendastew

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.

pjockey avatar Mar 03 '20 16:03 pjockey

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

derekja avatar Apr 08 '20 06:04 derekja

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 avatar Apr 09 '20 18:04 jonaslejon

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 avatar Apr 09 '20 19:04 jonaslejon

@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?

bjohnson135 avatar May 13 '20 18:05 bjohnson135

@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.

BraveSentry avatar May 23 '20 06:05 BraveSentry