Fedora 19 64ビットでコンパイルオプション-lzと-lcryptoのためにどのパッケージをインストールする必要がありますか? gitを静的にコンパイルしようとしています。完全なエラーメッセージは次のとおりです。
[rubenroy@localhost git]$ make prefix=/home/rubenroy/git-static CFLAGS="${CFLAGS} -static"
LINK git-credential-store
/usr/bin/ld: cannot find -lz
/usr/bin/ld: cannot find -lcrypto
libgit.a(path.o): In function `getpw_str':
path.c:(.text+0xd0b): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libgit.a(wrapper.o): In function `xgetpwuid_self':
wrapper.c:(.text+0xeac): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libpthread.a(libpthread.o): In function `sem_open':
(.text+0x67fb): warning: the use of `mktemp' is dangerous, better use `mkstemp'
libgit.a(ident.o): In function `add_domainname':
ident.c:(.text+0x3cc): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
collect2: error: ld returned 1 exit status
make: *** [git-credential-store] Error 1
[rubenroy@localhost git]$
編集:ライブラリがインストールされましたが、コンパイル時にエラーが発生します。
[rubenroy@localhost git]$ make prefix=/home/rubenroy/git-static CFLAGS="${CFLAGS} -static"
LINK git-credential-store
libgit.a(path.o): In function `getpw_str':
path.c:(.text+0xd0b): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libgit.a(wrapper.o): In function `xgetpwuid_self':
wrapper.c:(.text+0xeac): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libpthread.a(libpthread.o): In function `sem_open':
(.text+0x67fb): warning: the use of `mktemp' is dangerous, better use `mkstemp'
libgit.a(ident.o): In function `add_domainname':
ident.c:(.text+0x3cc): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(fips.o): In function `FIPSCHECK_verify':
(.text+0x116): undefined reference to `dlopen'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(fips.o): In function `FIPSCHECK_verify':
(.text+0x12d): undefined reference to `dlsym'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(fips.o): In function `FIPSCHECK_verify':
(.text+0x142): undefined reference to `dladdr'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(fips.o): In function `FIPSCHECK_verify':
(.text+0x14e): undefined reference to `dlclose'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(fips.o): In function `FIPSCHECK_verify':
(.text+0x1a6): undefined reference to `dlclose'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
(.text+0x11): undefined reference to `dlopen'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
(.text+0x24): undefined reference to `dlsym'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
(.text+0x2f): undefined reference to `dlclose'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
(.text+0x334): undefined reference to `dlsym'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
(.text+0x3f2): undefined reference to `dlerror'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
(.text+0x464): undefined reference to `dlsym'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
(.text+0x522): undefined reference to `dlerror'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
(.text+0x589): undefined reference to `dlopen'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
(.text+0x5ed): undefined reference to `dlclose'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
(.text+0x625): undefined reference to `dlerror'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':
(.text+0x6b1): undefined reference to `dladdr'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':
(.text+0x711): undefined reference to `dlerror'
/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':
(.text+0x772): undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
make: *** [git-credential-store] Error 1
答え1
その静的ライブラリ(ファイルなど)を含むlibxx.a
パッケージを探しています。通常、共有ライブラリ+サフィックスを含むパッケージと同じ名前です-static
。この場合zlib-static
とopenssl-static
。
$ repoquery --list zlib-static.x86_64
/usr/lib64/libz.a
/usr/share/doc/zlib-static-1.2.7
/usr/share/doc/zlib-static-1.2.7/README
$ repoquery --list openssl-static.x86_64
/usr/lib64/libcrypto.a
/usr/lib64/libssl.a