如何将库curlpp添加到C ++项目中

时间:2017-04-21 11:37:32

标签: c++ curlpp lib

我想将curlpp添加到我的C ++项目中。目前,我有一个main.cpp文件,如下所示:

#include <iostream> 
#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>

int main() {
  return 0; 
}

我编译使用:     “g ++ -std = c ++ 14 -I / usr / nguyenthesang / Desktop / myprogram / curlpp-0.8.1 / include main.cpp”并成功编译。

然后我在main函数中添加实现(下面是从curlpp的repo中复制的):

#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>


using namespace curlpp::options;

int main(int, char **)
{
    try
    {
    // That's all that is needed to do cleanup of used resources (RAII 
    style).
    curlpp::Cleanup myCleanup;

    // Our request to be sent.
    curlpp::Easy myRequest;

    // Set the URL.
    myRequest.setOpt<Url>("http://example.com");

    // Send request and get a result.
    // By default the result goes to standard output.
    myRequest.perform();
}

catch(curlpp::RuntimeError & e)
{
    std::cout << e.what() << std::endl;
}

catch(curlpp::LogicError & e)
{
    std::cout << e.what() << std::endl;
}

return 0;
}

当我使用“g ++ -std = c ++ 14 -I / usr / nguyenthesang / Desktop / myprogram / curlpp-0.8.1 / include main.cpp”编译时,有编译错误,表示“ ld:未找到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)“。

错误可能来自于我只将头文件链接到程序而不是库本身。我谷歌四处寻找链接库的方法(例如使用-L选项),但它没有用。我需要帮助解决这个问题。

我还想问一下将每个库添加到C ++项目中的一般方法,比如iOS中的Cocoapods?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在ubuntu上,我成功安装了以下软件包:

sudo apt-get install pkg-config libcurlpp-dev libcurl4-openssl-dev

(在CMakeLists.txt中使用pkg-config查找curlpp并设置一个指向它的env变量)
然后在我的CMakeLists.txt文件中添加:

include(FindPkgConfig)
pkg_check_modules(CURLPP REQUIRED curlpp)

然后仍在CMakeLists.txt中,将其添加到target_link_libraries $ {CURLPP_LDFLAGS}中,例如:

target_link_libraries(mylibcurlppprog ${CURLPP_LDFLAGS})