Why it still complains about libcurl.so.4?

2019-09-17 15:08发布

问题:

I ln ing the curl from /usr/bin/curl to /usr/local/bin/curl. When I run from command line, the "no version information available" is gone, but when I compile it in home environment, it still complains about it: cmake: ~/local/lib/libcurl.so.4: no version information available (required by cmake) /bin/bash: line 14: 63003 Segmentation fault.

When I look at the local version: ./curl --version curl 7.27.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.27.0-DEV OpenSSL/1.0.1f zlib/1.2.8 libssh2/1.4.0_DEV Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

It was installed via apt-get libcurl4-openssl-dev, couldn't remove it.

How do I install it in local/bin and local/lib?

Thanks

回答1:

You have a library compiled without version symbols.

The library has version symbols for very important purpose: asserting the library is modern enough to fit the requirements of the program. If cmake complains about the library, it means that:

  1. You've compiled it without version symbols (probable)
  2. You compiled too old version


回答2:

I think the problem is with the name "libcurl.so.4". I had a similar problem on Linux Mint 18 (base - Ubuntu 16.04), 64 bit, installing a new .deb file for software previously only available for Windoze. The install was faultless but when I tried to run the programme, it failed with the message "error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory".

The supplier advised me to install "curl" but it was already there. I fully uninstalled it then reinstalled without any change. I then did a scan for "libcurl.so.4" on my hard disk without result. The nearest I could find for it were in "/usr/lib/x86_64-linux-gnu/". The files were "libcurl-gnutls.so.3", "libcurl-gnutls.so.4" and "libcurl-gnutls.so.4.4.0". The first two being symlinks to the third. I then added a further symlink to "libcurl-gnutls.so.4.4.0" called "libcurl.so.4" and this allowed me to run the new version without problems.