Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

curl compile faild with ssh2 #1146

Closed
kingbrant opened this issue Nov 28, 2016 · 5 comments
Closed

curl compile faild with ssh2 #1146

kingbrant opened this issue Nov 28, 2016 · 5 comments

Comments

@kingbrant
Copy link

When i compile with ssh2, i configured it --with-zlib=$(STAGING_DIR)/usr/ --with-ssl=$(STAGING_DIR)/usr/ --with-libssh2=$(PKG_INSTALL_DIR)/usr --enable-shared --enable-static ac_cv_func_SSLv2_client_method=no.The libcurl.so have compiled, but curl compile failed.
curl version: 7.49.1
Host setup: arm-none-linux-gnueabi
Install prefix: /usr
Compiler: arm-none-linux-gnueabi-gcc
SSL support: enabled (OpenSSL)
SSH support: enabled (libSSH2)
zlib support: enabled
GSS-API support: no (--with-gssapi)
TLS-SRP support: enabled
resolver: default (--enable-ares / --enable-threaded-resolver)
IPv6 support: enabled
Unix sockets support: enabled
IDN support: no (--with-{libidn,winidn})
Build libcurl: Shared=yes, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
SSPI support: no (--enable-sspi)
ca cert bundle: no
ca cert path: no
ca fallback: no
LDAP support: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS support: no (--enable-ldaps)
RTSP support: enabled
RTMP support: no (--with-librtmp)
metalink support: no (--with-libmetalink)
PSL support: no (libpsl not found)
HTTP2 support: disabled (--with-nghttp2)
Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP

I found the Makefile in the src, "LIBCURL_LIBS = -lssh2 -lssh2 -lssl -lcrypto -lssl -lcrypto -lz -lrt" and "curl_LDADD = $(top_builddir)/lib/libcurl.la -lssl -lcrypto -lz -lrt".The curl_LDADD should be error, but why?The configure file has some bugs?
What should i do to build it ?
Thanks!

@bagder
Copy link
Member

bagder commented Nov 28, 2016

So what fails? Show us the error. Also, note that we fixed a libssh2 build issue even in 7.51.0 for when having multiple libssh2 libs installed when configure runs.

@kingbrant
Copy link
Author

Thank you very much!
"curl_LDADD = $(top_builddir)/lib/libcurl.la -lssl -lcrypto -lz -lrt" cause it will not link libssh2 when buld curl,so the following errors report:
libtool: link: arm-none-linux-gnueabi-gcc -Os -pipe -march=armv6 -msoft-float -Wno-system-headers -o .libs/curl curl-slist_wc.o curl-tool_binmode.o curl-tool_bname.o curl-tool_cb_dbg.o curl-tool_cb_hdr.o curl-tool_cb_prg.o curl-tool_cb_rea.o curl-tool_cb_see.o curl-tool_cb_wrt.o curl-tool_cfgable.o curl-tool_convert.o curl-tool_dirhie.o curl-tool_doswin.o curl-tool_easysrc.o curl-tool_formparse.o curl-tool_getparam.o curl-tool_getpass.o curl-tool_help.o curl-tool_helpers.o curl-tool_homedir.o curl-tool_hugehelp.o curl-tool_libinfo.o curl-tool_main.o curl-tool_metalink.o curl-tool_mfiles.o curl-tool_msgs.o curl-tool_operate.o curl-tool_operhlp.o curl-tool_panykey.o curl-tool_paramhlp.o curl-tool_parsecfg.o curl-tool_strdup.o curl-tool_setopt.o curl-tool_sleep.o curl-tool_urlglob.o curl-tool_util.o curl-tool_vms.o curl-tool_writeenv.o curl-tool_writeout.o curl-tool_xattr.o ../lib/curl-strtoofft.o ../lib/curl-rawstr.o ../lib/curl-nonblock.o ../lib/curl-warnless.o -L/usr/lib -L/lib -L/toolchain/arm-2012.03/usr/lib -Ltoolchain/arm-2012.03/lib ../lib/.libs/libcurl.so -lssl -lcrypto -lz -lrt
/opt/toolchain/arm-2012.03/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libssh2.so.1, needed by ../lib/.libs/libcurl.so, not found (try using -rpath or -rpath-link)
../lib/.libs/libcurl.so: undefined reference to libssh2_userauth_list' ../lib/.libs/libcurl.so: undefined reference to libssh2_exit'
../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_stat_ex' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_mkdir_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_write' ../lib/.libs/libcurl.so: undefined reference to libssh2_channel_free'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_disconnect' ../lib/.libs/libcurl.so: undefined reference to libssh2_knownhost_init'
../lib/.libs/libcurl.so: undefined reference to libssh2_hostkey_hash' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_init_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_free' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_unlink_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_channel_write_ex' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_readdir_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_read' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_last_errno'
../lib/.libs/libcurl.so: undefined reference to libssh2_session_disconnect_ex' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_shutdown'
../lib/.libs/libcurl.so: undefined reference to libssh2_knownhost_free' ../lib/.libs/libcurl.so: undefined reference to libssh2_knownhost_readfile'
../lib/.libs/libcurl.so: undefined reference to libssh2_session_last_error' ../lib/.libs/libcurl.so: undefined reference to libssh2_channel_wait_eof'
../lib/.libs/libcurl.so: undefined reference to libssh2_userauth_password_ex' ../lib/.libs/libcurl.so: undefined reference to libssh2_channel_send_eof'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_get_identity' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_statvfs'
../lib/.libs/libcurl.so: undefined reference to libssh2_version' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_free'
../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_rename_ex' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_hostkey'
../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_symlink_ex' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_last_error'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_userauth' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_block_directions'
../lib/.libs/libcurl.so: undefined reference to libssh2_knownhost_writefile' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_close_handle'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_init' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_rmdir_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_userauth_authenticated' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_init'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_connect' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_set_blocking'
../lib/.libs/libcurl.so: undefined reference to libssh2_knownhost_add' ../lib/.libs/libcurl.so: undefined reference to libssh2_userauth_keyboard_interactive_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_scp_recv' ../lib/.libs/libcurl.so: undefined reference to libssh2_channel_read_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_init' ../lib/.libs/libcurl.so: undefined reference to libssh2_knownhost_checkp'
../lib/.libs/libcurl.so: undefined reference to libssh2_scp_send64' ../lib/.libs/libcurl.so: undefined reference to libssh2_userauth_publickey_fromfile_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_seek64' ../lib/.libs/libcurl.so: undefined reference to libssh2_sftp_open_ex'
../lib/.libs/libcurl.so: undefined reference to libssh2_agent_list_identities' ../lib/.libs/libcurl.so: undefined reference to libssh2_session_handshake'
../lib/.libs/libcurl.so: undefined reference to `libssh2_channel_wait_closed'
collect2: ld returned 1 exit status

@bagder
Copy link
Member

bagder commented Dec 1, 2016

Clearly the configure script first finds libssh2 successfully since it can detect it fine, and it actually links with it to make sure that it works in the configure script. But then for some reason the linker can't find it or use it when you run the makefile later. But I can't tell exactly why this happens.

@bagder
Copy link
Member

bagder commented Jan 17, 2017

Did you perchance build/install only a static libssh2 library? When linking curl, it isn't supposed to specify libssh2 because curl doesn't use libssh2, only libcurl does.

@bagder
Copy link
Member

bagder commented Feb 13, 2017

Stale

@bagder bagder closed this as completed Feb 13, 2017
@lock lock bot locked as resolved and limited conversation to collaborators May 6, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

No branches or pull requests

2 participants