C++ 在Linux for Windows下使用mingw32交叉编译时链接libcurl

C++ 在Linux for Windows下使用mingw32交叉编译时链接libcurl,c++,linux,linker,libcurl,mingw-w64,C++,Linux,Linker,Libcurl,Mingw W64,我已经使用mingw32编译了libcurl,并且正在尝试将它与使用mingw32的程序从Linux机器上链接到Windows系统 我被输出了文件libcurl-4.dll libcurl.a libcurl.la libcurl.lai 我已将它们包含在我的mingw32 libs文件夹中,地址为:/usr/x86_64-w64-mingw32/lib 我能够找到一些关于链接libstdc++和libgcc的其他主题,以在执行时处理依赖项错误,但在尝试添加libcurl.a时,它不会编译周期

我已经使用mingw32编译了libcurl,并且正在尝试将它与使用mingw32的程序从Linux机器上链接到Windows系统

我被输出了文件libcurl-4.dll libcurl.a libcurl.la libcurl.lai

我已将它们包含在我的mingw32 libs文件夹中,地址为:/usr/x86_64-w64-mingw32/lib

我能够找到一些关于链接libstdc++和libgcc的其他主题,以在执行时处理依赖项错误,但在尝试添加libcurl.a时,它不会编译周期

我使用了以下方法:

$ x86_64-w64-mingw32-g++ main.cpp -o hello.exe -static-libgcc -static-libstdc++ -static "/usr/x86_64-w64-mingw32/lib/libcurl.a" -lpthread
但是,我不能让它使用libcurl.a,我将继续收到这些错误

/tmp/ccIceRus.o:main.cpp:(.text+0xde): undefined reference to `__imp_curl_easy_init'
/tmp/ccIceRus.o:main.cpp:(.text+0x106): undefined reference to `__imp_curl_easy_setopt'
/tmp/ccIceRus.o:main.cpp:(.text+0x122): undefined reference to `__imp_curl_easy_setopt'
/tmp/ccIceRus.o:main.cpp:(.text+0x13e): undefined reference to `__imp_curl_easy_setopt'
/tmp/ccIceRus.o:main.cpp:(.text+0x159): undefined reference to `__imp_curl_easy_setopt'
/tmp/ccIceRus.o:main.cpp:(.text+0x169): undefined reference to `__imp_curl_easy_perform'
/tmp/ccIceRus.o:main.cpp:(.text+0x180): undefined reference to `__imp_curl_easy_strerror'
/tmp/ccIceRus.o:main.cpp:(.text+0x197): undefined reference to `__imp_curl_easy_cleanup'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccIceRus.o: bad reloc address 0x80 in section `.xdata'
collect2: error: ld returned 1 exit status
我做错了什么?。我过不了这一关。我知道这一定是个愚蠢的问题


谢谢。

我可以通过指定-DCURL\u STATICLIB以及链接其他一些依赖项来解决这个问题

x86_64-w64-mingw32-g++ main.cpp -o hello.exe -DCURL_STATICLIB -static -lstdc++ -lgcc -lpthread -lcurl -lwldap32 -lws2_32

无需提及
static
word,因为您使用的是对象文件归档的完整路径,而对象文件归档无论如何都不是动态库。试着这样做:
$x86_64-w64-mingw32-g++main.cpp”/usr/x86_64-w64-mingw32/lib/libcurl.a“-o hello.exe-static libgcc-static libstdc++-lpthread
如果启用了共享库,这将起作用,但是,如果它们只使用静态“归档”库,就没那么幸运了。