Я пытаюсь собрать libcurl статически, поэтому я могу перенести его на aws лямбду.
Пока я пробовал:
1. I download curl from https://curl.haxx.se/download.html to build from source.
2. ./configure --disable-shared
3. make
4. sudo make install
Ниже мой CmakeLists.txt
cmake_minimum_required (ВЕРСИЯ 3.1)
set(CMAKE_CXX_STANDARD 11)
project(executable LANGUAGES CXX)
add_definitions( -DCURL_STATICLIB )
set(LCURL_TARGET "<path to my downloaded curl library>")
set(CURL_LIBRARY_DIRS "${LCURL_TARGET}/lib/")
set(CURL_INCLUDE_DIRS "${LCURL_TARGET}/include/")
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})
link_directories(${CURL_TARGET} )
add_executable(${PROJECT_NAME} "execute_code.cpp")
target_link_libraries(executable PRIVATE curl)
Я также пытался с
target_link_libraries(executable PRIVATE ${CURL_LIBRARY_DIRS})
Я пытался: C - программа компиляции Cmake с libcurl а также.
Мой код исполнения. cpp. Хотя это только для тестирования.
#include<iostream>
#include <curl/curl.h>
using namespace std;
int main(int argc, char** argv) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
/* First set the URL that is about to receive our POST. This URL can
just as well be a https:// URL if that is what should receive the
data. */
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com");
/* Now specify the POST data */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl");
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
Он собирается без проблем, но когда я перемещаю его в AWS Lambda, он выдает ошибку: b './ исполняемый файл: / usr / lib64 / libcurl.so.4: информация о версии недоступна (требуется ./executable)
Поскольку он использует файл .so, я решил, что он не статически связывается.
I Я новичок в Cmake и C ++. Не могли бы вы помочь, что я делаю не так здесь.