[GH-ISSUE #1163] [CentOS7 installation error] /bin/ld: cannot find -lfuse3 #612

Closed
opened 2026-03-04 01:47:12 +03:00 by kerem · 2 comments
Owner

Originally created by @mprenditore on GitHub (Oct 1, 2019).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/1163

Additional Information

While trying to compile s3fs on CentOS 7 I'm getting the error you do find down here.

Version of s3fs being used (s3fs --version)

latest git clone

Version of fuse being used (pkg-config --modversion fuse, rpm -qi fuse, dpkg -s fuse)

fuse-2.9.2-11.el7.x86_64

Kernel information (uname -r)

3.10.0-1062.1.1.el7.x86_64

GNU/Linux Distribution, if applicable (cat /etc/os-release)

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

s3fs command line used, if applicable

✔ {13:41}[]/usr/src/s3fs-fuse:[master ✭|✔ ] # ./autogen.sh 
--- Make commit hash file -------
--- Finished commit hash file ---
--- Start autotools -------------
--- Finished autotools ----------
✔ {13:42}[]/usr/src/s3fs-fuse:[master ✭|✔ ] # ./configure --prefix=/usr --with-openssl
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/xattr.h usability... yes
checking sys/xattr.h presence... yes
checking for sys/xattr.h... yes
checking attr/xattr.h usability... no
checking attr/xattr.h presence... no
checking for attr/xattr.h... no
checking sys/extattr.h usability... no
checking sys/extattr.h presence... no
checking for sys/extattr.h... no
checking s3fs build with nettle(GnuTLS)... no
checking s3fs build with OpenSSL... yes
checking s3fs build with GnuTLS... no
checking s3fs build with NSS... no
checking for pkg-config... /bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for common_lib_checking... yes
checking compile s3fs with... OpenSSL
checking for DEPS... yes
checking for malloc_trim... yes
checking for library containing clock_gettime... none required
checking for clock_gettime... yes
checking pthread mutex recursive... PTHREAD_MUTEX_RECURSIVE
checking checking CURLOPT_TCP_KEEPALIVE... yes
checking checking CURLOPT_SSL_ENABLE_ALPN... no
checking checking CURLOPT_KEEP_SENDING_ON_ERROR... no
checking for git... yes
checking github short commit hash... 1db94a0
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating test/Makefile
config.status: creating doc/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
✔ {13:42}[]/usr/src/s3fs-fuse:[master ✭|✔ ] # make
make  all-recursive
make[1]: Entering directory `/usr/src/s3fs-fuse'
Making all in src
make[2]: Entering directory `/usr/src/s3fs-fuse/src'
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT s3fs.o -MD -MP -MF .deps/s3fs.Tpo -c -o s3fs.o s3fs.cpp
mv -f .deps/s3fs.Tpo .deps/s3fs.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT curl.o -MD -MP -MF .deps/curl.Tpo -c -o curl.o curl.cpp
mv -f .deps/curl.Tpo .deps/curl.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT cache.o -MD -MP -MF .deps/cache.Tpo -c -o cache.o cache.cpp
mv -f .deps/cache.Tpo .deps/cache.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT string_util.o -MD -MP -MF .deps/string_util.Tpo -c -o string_util.o string_util.cpp
mv -f .deps/string_util.Tpo .deps/string_util.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT s3fs_util.o -MD -MP -MF .deps/s3fs_util.Tpo -c -o s3fs_util.o s3fs_util.cpp
mv -f .deps/s3fs_util.Tpo .deps/s3fs_util.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT fdcache.o -MD -MP -MF .deps/fdcache.Tpo -c -o fdcache.o fdcache.cpp
mv -f .deps/fdcache.Tpo .deps/fdcache.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT common_auth.o -MD -MP -MF .deps/common_auth.Tpo -c -o common_auth.o common_auth.cpp
mv -f .deps/common_auth.Tpo .deps/common_auth.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT addhead.o -MD -MP -MF .deps/addhead.Tpo -c -o addhead.o addhead.cpp
mv -f .deps/addhead.Tpo .deps/addhead.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/local/include/fuse3 -I/usr/include/libxml2      -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT openssl_auth.o -MD -MP -MF .deps/openssl_auth.Tpo -c -o openssl_auth.o openssl_auth.cpp
mv -f .deps/openssl_auth.Tpo .deps/openssl_auth.Po
g++  -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2   -o s3fs s3fs.o curl.o cache.o string_util.o s3fs_util.o fdcache.o common_auth.o addhead.o openssl_auth.o   -pthread -L/usr/local/lib -lfuse3 -lcurl -lxml2 -lcrypto   
/bin/ld: cannot find -lfuse3
collect2: error: ld returned 1 exit status
make[2]: *** [s3fs] Error 1
make[2]: Leaving directory `/usr/src/s3fs-fuse/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/s3fs-fuse'
make: *** [all] Error 2
Originally created by @mprenditore on GitHub (Oct 1, 2019). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/1163 ### Additional Information While trying to compile s3fs on CentOS 7 I'm getting the error you do find down here. #### Version of s3fs being used (s3fs --version) _latest git clone_ #### Version of fuse being used (pkg-config --modversion fuse, rpm -qi fuse, dpkg -s fuse) _fuse-2.9.2-11.el7.x86_64_ #### Kernel information (uname -r) _3.10.0-1062.1.1.el7.x86_64_ #### GNU/Linux Distribution, if applicable (cat /etc/os-release) ``` NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" ``` #### s3fs command line used, if applicable ``` ✔ {13:41}[]/usr/src/s3fs-fuse:[master ✭|✔ ] # ./autogen.sh --- Make commit hash file ------- --- Finished commit hash file --- --- Start autotools ------------- --- Finished autotools ---------- ✔ {13:42}[]/usr/src/s3fs-fuse:[master ✭|✔ ] # ./configure --prefix=/usr --with-openssl checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking sys/xattr.h usability... yes checking sys/xattr.h presence... yes checking for sys/xattr.h... yes checking attr/xattr.h usability... no checking attr/xattr.h presence... no checking for attr/xattr.h... no checking sys/extattr.h usability... no checking sys/extattr.h presence... no checking for sys/extattr.h... no checking s3fs build with nettle(GnuTLS)... no checking s3fs build with OpenSSL... yes checking s3fs build with GnuTLS... no checking s3fs build with NSS... no checking for pkg-config... /bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for common_lib_checking... yes checking compile s3fs with... OpenSSL checking for DEPS... yes checking for malloc_trim... yes checking for library containing clock_gettime... none required checking for clock_gettime... yes checking pthread mutex recursive... PTHREAD_MUTEX_RECURSIVE checking checking CURLOPT_TCP_KEEPALIVE... yes checking checking CURLOPT_SSL_ENABLE_ALPN... no checking checking CURLOPT_KEEP_SENDING_ON_ERROR... no checking for git... yes checking github short commit hash... 1db94a0 checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating test/Makefile config.status: creating doc/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands ✔ {13:42}[]/usr/src/s3fs-fuse:[master ✭|✔ ] # make make all-recursive make[1]: Entering directory `/usr/src/s3fs-fuse' Making all in src make[2]: Entering directory `/usr/src/s3fs-fuse/src' g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT s3fs.o -MD -MP -MF .deps/s3fs.Tpo -c -o s3fs.o s3fs.cpp mv -f .deps/s3fs.Tpo .deps/s3fs.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT curl.o -MD -MP -MF .deps/curl.Tpo -c -o curl.o curl.cpp mv -f .deps/curl.Tpo .deps/curl.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT cache.o -MD -MP -MF .deps/cache.Tpo -c -o cache.o cache.cpp mv -f .deps/cache.Tpo .deps/cache.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT string_util.o -MD -MP -MF .deps/string_util.Tpo -c -o string_util.o string_util.cpp mv -f .deps/string_util.Tpo .deps/string_util.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT s3fs_util.o -MD -MP -MF .deps/s3fs_util.Tpo -c -o s3fs_util.o s3fs_util.cpp mv -f .deps/s3fs_util.Tpo .deps/s3fs_util.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT fdcache.o -MD -MP -MF .deps/fdcache.Tpo -c -o fdcache.o fdcache.cpp mv -f .deps/fdcache.Tpo .deps/fdcache.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT common_auth.o -MD -MP -MF .deps/common_auth.Tpo -c -o common_auth.o common_auth.cpp mv -f .deps/common_auth.Tpo .deps/common_auth.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT addhead.o -MD -MP -MF .deps/addhead.Tpo -c -o addhead.o addhead.cpp mv -f .deps/addhead.Tpo .deps/addhead.Po g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include/fuse3 -I/usr/include/libxml2 -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -MT openssl_auth.o -MD -MP -MF .deps/openssl_auth.Tpo -c -o openssl_auth.o openssl_auth.cpp mv -f .deps/openssl_auth.Tpo .deps/openssl_auth.Po g++ -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -o s3fs s3fs.o curl.o cache.o string_util.o s3fs_util.o fdcache.o common_auth.o addhead.o openssl_auth.o -pthread -L/usr/local/lib -lfuse3 -lcurl -lxml2 -lcrypto /bin/ld: cannot find -lfuse3 collect2: error: ld returned 1 exit status make[2]: *** [s3fs] Error 1 make[2]: Leaving directory `/usr/src/s3fs-fuse/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/src/s3fs-fuse' make: *** [all] Error 2 ```
kerem 2026-03-04 01:47:12 +03:00
  • closed this issue
  • added the
    need info
    label
Author
Owner

@gaul commented on GitHub (Oct 4, 2019):

It looks like you have a (partial?) custom install of fuse3 in /usr/local. s3fs uses fuse2 so I don't see how it would pick this up. Could you share your config.log and distribution version?

<!-- gh-comment-id:538196669 --> @gaul commented on GitHub (Oct 4, 2019): It looks like you have a (partial?) custom install of fuse3 in `/usr/local`. s3fs uses fuse2 so I don't see how it would pick this up. Could you share your `config.log` and distribution version?
Author
Owner

@gaul commented on GitHub (Feb 3, 2020):

Closing due to inactivity. Please reopen if symptoms persist.

<!-- gh-comment-id:581287764 --> @gaul commented on GitHub (Feb 3, 2020): Closing due to inactivity. Please reopen if symptoms persist.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#612
No description provided.