私は、OpenCVモジュールを作成して、Kurento Media Serverに接続します。 私はlib curlを使ってURLからファイルを読みます。次のようにKurento:OpenCVモジュールのリンクライブラリ
私が持っているコードは次のとおりです。
#include<curl/curl.h>
size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata)
{
vector<uchar> *stream = (vector<uchar>*)userdata;
size_t count = size * nmemb;
stream->insert(stream->end(), ptr, ptr + count);
return count;
}
Mat curlImg(const char *img_url, int timeout=10)
{
vector<uchar> stream;
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, img_url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &stream);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
return imdecode(stream, -1);
}
Mat image = curlImg(link);
それを構築する際に:私は、次の警告を取得し、得られたパッケージがインストールされていません。
のdpkg-shlibdeps:警告:で見つかったシンボルcurl_easy_cleanup警告:シンボルcurl_easy_performライブラリ
のdpkg-shlibdepsのどれで見つかった:警告:ライブラリ
のdpkg-shlibdepsのいずれシンボルがライブラリ
のdpkg-SHLのいずれにおいても認められなかっcurl_easy_setopt警告:ibdepsシンボルがライブラリなしで見られるcurl_easy_init
私の推測では、どのように私はこれらのライブラリをリンクする必要がありますCMakeLists.txt
にライブラリをリンクに問題があるということでしょうか?
target_link_libraries()は正しい方法ですか?もしそうなら、構文は何ですか?
編集:
これらは、私がこれまで試した方法があります。
SET(requiredlibs)
FIND_PACKAGE(CURL)
IF(CURL_FOUND)
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
SET(requiredlibs ${requiredlibs} ${CURL_LIBRARIES})
ELSE(CURL_FOUND)
MESSAGE(FATAL_ERROR "Could not find the CURL library and development files.")
ENDIF(CURL_FOUND)
target_link_libraries (curl)
SET(${CURL_LIBRARIES})
あなたは[こちら] target_link_libreariesの例を見つけることができます(https://github.com/Kurento/kurento-media-サーバ/ blob/15f6a5f12e336292abe78b28afe57946d860be84 /サーバ/ CMakeLists.txt#L29)。 – igracia
どうやってリンクしていますか? – santoscadenas
は、私が試してみた: target_link_libraries(カール)と SET($ {} CURL_LIBRARIES) の両方が動作しませんでした。 – AVB