【发布时间】:2015-10-14 16:16:37
【问题描述】:
我是 C++ 的新手。我正在创建一个简单的 GUI 应用程序,它使用 libcurlpp 访问网页,如下所示:
#include <sstream>
#include <string>
#include <curlpp/cURLpp.hpp>
#include <curlpp/Options.hpp>
using curlpp::Cleanup;
using curlpp::options::Url;
using std::ostringstream;
using std::string;
string MainWindow::getstr(const string &uri)
{
Cleanup cleanup;
ostringstream stream;
stream << Url(uri);
return stream.str();
}
但是,当我编译代码时,我收到大约 20 个不同的链接器错误,表明所有对 curlpp 的引用都是未定义的。果然,当我进入包含目录时,我看到的只是头文件。
如果重要的话,我在 Ubuntu 14.04 上并通过运行 apt-get install libcurlpp-dev 安装了 libcurlpp。我还需要做些什么来将编译器指向.cpp/.o 文件并删除未定义的引用吗?
免责声明: 是的,我确实阅读了this,不,它与我的问题无关,因为它没有专门讨论处理第三方库以及实现文件的位置(.cpp 和 .o)安装在我的系统上。
【问题讨论】:
-
出于好奇,是否有
libcurlpp.so或libcurlpp.a隐藏在 /usr/local/lib 文件夹(或其中的子目录)附近的某个地方?显示您最后的 build 行,它无法链接您的程序,以便我们都可以看到-lcurlpp没有被错误地遗漏。否则,该链接问题是非常相关的。 -
@WhozCraig 不,我刚刚检查了
/usr/lib和/usr/local/lib并且没有curlpp库。我在.pro文件中添加了QMAKE_CXXFLAGS += -lcurlpp(因为我使用的是Qt + qmake)到pass arguments to the compiler,但它仍然显示相同的错误。
标签: c++ linker undefined-reference