Статическая линковка curl к проекту с использованием CMake
Не могу понять в чем проблема. Пытаюсь сделать статическую линковку библиотеки curl к своему проекту. Использую CLion + CMake + Msys2 --> MinGW и пакет mingw-w64-x86_64-curl. Программа компилируется нормально и работает, но при запуске .exe файла получаю сообщение об отсутствии dll. Мне необходимо получить .exe который был бы переносимым без зависимостей. Возможно делаю что-то не правильно, так-как только знакомлюсь с CMake и если не составит труда направите меня в правильно русло.
CMakeList.txt
cmake_minimum_required(VERSION 3.15)
##
## PROJECT name and version
##
project(lib_vk VERSION 0.0.0 LANGUAGES CXX)
##
## SET LANGUAGE STANDARD
##
set(CMAKE_CXX_STANDARD 20)
##
## INCLUDE
##
include_directories(../include)
set(HEADER_FILES)
set(SOURCE_FILES src/main.cpp)
add_executable(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES})
######################################################################
# With static libcurl
find_package(CURL REQUIRED)
if(CURL_FOUND)
add_library(curl STATIC IMPORTED)
add_definitions(-DCURL_STATICLIB)
target_link_libraries(${PROJECT_NAME} ${CURL_LIBRARIES})
endif()
######################################################################
set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -static-libstdc++")
######################################################################
#PVS-Studio analyze
include(PVS-Studio.cmake)
pvs_studio_add_target(
TARGET ${PROJECT_NAME}.analyze
OUTPUT FORMAT errorfile
ANALYZE ${PROJECT_NAME}
MODE GA:1,2,3 OP
LOG Analyze.txt
CONFIG "../PVS-Studio.cfg")
######################################################################
main.cpp
#include <string>
#include <iostream>
#include <curl/curl.h>
//-----------------------------------------------------------------------------
static size_t write_data(char *ptr, size_t size, size_t nmemb, std::string* data)
{
if (data)
{
data->append(ptr, size*nmemb);
return size*nmemb;
}
else
return 0;
}
//-----------------------------------------------------------------------------
int main()
{
auto curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "https://api.vk.com/method/...");
curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50L);
std::string response_string;
std::string header_string;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_string);
curl_easy_perform(curl);
std::cout << response_string;
curl_easy_cleanup(curl);
curl = nullptr;
}
return 0;
}
//-----------------------------------------------------------------------------
