我想将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?
感谢您的帮助。
答案 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})