CLion 中 lcurl 的问题
Problems with lcurl in CLion
我是 CLion 的新手,我想提高我在 libcurl 方面的技能。我已经在 Ubuntu 15.04 上安装了 libcurl4-openssl-dev。我的 CMakeLists.txt:
cmake_minimum_required(VERSION 3.3)
project(test)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lcurl")
set(SOURCE_FILES main.cpp)
add_executable(test ${SOURCE_FILES})
但是当我尝试这个时:
#include <iostream>
#include <curl/curl.h>
#include <string>
using namespace std;
int main()
{
CURL *curl;
CURLcode result;
curl = curl_easy_init();
return 0;
}
他告诉我这样的错误:
/home/me/ClionProjects/test/main.cpp:10: undefined reference to `curl_easy_init'
请帮帮我,
谢谢
这通常意味着您的程序无法link到
对.a
或.so
文件解析函数curl_easy_init.
.a 用于静态 linking 的情况。 a 代表存档。
.so用于动态linking的情况。 so 代表共享对象。
虽然您可能有 libcurl.a
或 libcurl.so
可用,但它
可能是 linker 在执行时找不到那些。
指定目录,linker 将在其中查找如下所示的库。
要找到 libcurl.a 的位置,您可以 运行 作为根用户执行以下命令:
find / -name libcurl.a
假设上面的命令给出:
/libcurl/folder/libcurl.a
作为输出,您可以在 CMakeLists.txt 文件中添加以下行。
link_directories(/libcurl/folder /any/additional/path)
目标可以link编辑到库中,然后使用。
target_link_libraries(test libcurl)
如果你正在做动态 linking 你应该为 libcurl.so
做同样的事情
感谢@sjsam。
解决方案是(CMakeLists.txt):
cmake_minimum_required(VERSION 3.3)
project(example)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lcurl")
set(SOURCE_FILES main.cpp)
add_executable(example ${SOURCE_FILES})
target_link_libraries(example curl)
我是 CLion 的新手,我想提高我在 libcurl 方面的技能。我已经在 Ubuntu 15.04 上安装了 libcurl4-openssl-dev。我的 CMakeLists.txt:
cmake_minimum_required(VERSION 3.3)
project(test)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lcurl")
set(SOURCE_FILES main.cpp)
add_executable(test ${SOURCE_FILES})
但是当我尝试这个时:
#include <iostream>
#include <curl/curl.h>
#include <string>
using namespace std;
int main()
{
CURL *curl;
CURLcode result;
curl = curl_easy_init();
return 0;
}
他告诉我这样的错误:
/home/me/ClionProjects/test/main.cpp:10: undefined reference to `curl_easy_init'
请帮帮我, 谢谢
这通常意味着您的程序无法link到
对.a
或.so
文件解析函数curl_easy_init.
.a 用于静态 linking 的情况。 a 代表存档。
.so用于动态linking的情况。 so 代表共享对象。
虽然您可能有 libcurl.a
或 libcurl.so
可用,但它
可能是 linker 在执行时找不到那些。
指定目录,linker 将在其中查找如下所示的库。
要找到 libcurl.a 的位置,您可以 运行 作为根用户执行以下命令:
find / -name libcurl.a
假设上面的命令给出:
/libcurl/folder/libcurl.a
作为输出,您可以在 CMakeLists.txt 文件中添加以下行。
link_directories(/libcurl/folder /any/additional/path)
目标可以link编辑到库中,然后使用。
target_link_libraries(test libcurl)
如果你正在做动态 linking 你应该为 libcurl.so
做同样的事情感谢@sjsam。 解决方案是(CMakeLists.txt):
cmake_minimum_required(VERSION 3.3)
project(example)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lcurl")
set(SOURCE_FILES main.cpp)
add_executable(example ${SOURCE_FILES})
target_link_libraries(example curl)