【发布时间】:2018-08-04 17:41:07
【问题描述】:
我在我的 mac 机器上编写了一些代码,它一直运行良好,但是当我将它移植到 Linux 机器上时,我得到一个 undefined reference to curl_easy_init
我的编译器标志包括一个用于链接的-lcurl。
这是我的链接方式:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -L/curl/lib/dir -lcurl")
我尝试过使用和不使用-L/curl/lib/dir
Curl 安装在这台机器上:
$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
【问题讨论】:
-
嗨!这是您的 libcurl* 库所在的 /curl/lib/dir 吗?你是用系统curl还是自己编译的?
-
我不认为那是他们所在的地方。运行
curl-config --libs它返回-L/usr/lib/x86_64-linux-gnu -lcurl。我虽然这将是实际的标志,但即使有这个,同样的错误。 -
所以 -lcurl 应该足够了。 cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf 说什么?
-
命令给出了这个。此外,
-lcurl足以在我的 Mac 上工作。# Multiarch support /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
标签: c++ linux curl cmake shared-libraries