ftpclient-cpp icon indicating copy to clipboard operation
ftpclient-cpp copied to clipboard

Error in VS 2022

Open JekSun97 opened this issue 1 year ago • 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";
}

JekSun97 avatar Jun 18 '24 09:06 JekSun97

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).

embeddedmz avatar Jun 22 '24 16:06 embeddedmz