embeddedmz/ftpclient-cpp

Error in VS 2022

JekSun97 opened this issue · 1 comments

I built libcurl 8.8.0, connected it to your library, and successfully built ftpclient.lib, now I created a project for testing, connected the library, but when I run it I get the following errors:

1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_slist_append.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_slist_free_all.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_strerror.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_init.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_setopt.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_perform.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_getinfo.
1>ftpclient.lib(FTPClient.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_reset.
1>ftpclient.lib(CurlHandle.obj) : error LNK2001: unresolved external symbol __imp__curl_global_init.
1>ftpclient.lib(CurlHandle.obj) : error LNK2001: unresolved external symbol __imp__curl_global_cleanup.
1>C:\Users\FireRun\Desktop\ftp\ftp\Release\ftp.exe : fatal error LNK1120: unresolved external elements: 11

For testing I used minimal code:

#include <iostream>
#include "FTP/FTPClient.h"
#pragma comment(lib, "ftpclient.lib")

int main()
{
    embeddedmz::CFTPClient FTPClient([](const std::string& strLogMsg) { std::cout << strLogMsg << std::endl; });
    std::cout << "Hello World!\n";
}

The static library "ftpclient" (or the program "ftp.exe") is not properly linked to the dynamic library (it can also be static) "libcurl", you have a problem in the link parameters for the "release" configuration, I can't help you if I don't have your Visual Studio solution. You can share it with me (via a github repository for example) and I'll try to help you and explain what's wrong.

Another solution is to use vcpkg to manage libcurl (look at README).