C++ C++;:如何在使用libcurl的windows中运行可执行文件?

C++ C++;:如何在使用libcurl的windows中运行可执行文件?,c++,windows,cygwin,libcurl,C++,Windows,Cygwin,Libcurl,我编写了一个实用程序,使用libcurl从web上获取信息,并在Windows7机器上使用Cygwin编写和编译。我希望能够在windows环境中运行可执行文件,但当我这样做时,我收到错误“程序无法启动,因为您的计算机缺少cygcurl-4.dll”。我不确定如何解决这个问题,因为即使我安装了libcurl for windows,它似乎也在专门寻找Cygwin版本。理想情况下,我想弄清楚如何使程序自包含,这样它就可以运行,而无需用户自己安装任何库。“程序无法启动,因为您的计算机缺少cygcur

我编写了一个实用程序,使用libcurl从web上获取信息,并在Windows7机器上使用Cygwin编写和编译。我希望能够在windows环境中运行可执行文件,但当我这样做时,我收到错误“程序无法启动,因为您的计算机缺少cygcurl-4.dll”。我不确定如何解决这个问题,因为即使我安装了libcurl for windows,它似乎也在专门寻找Cygwin版本。理想情况下,我想弄清楚如何使程序自包含,这样它就可以运行,而无需用户自己安装任何库。

“程序无法启动,因为您的计算机缺少cygcurl-4.dll。”
您只需将cygcurl-4.dll与可执行文件一起分发即可解决此问题(将dll放入同一文件夹)


它应该位于Cygwin的binaries文件夹中。

为了使您的程序自包含,您应该尝试在Windows上将libcurl编译为没有Cygwin的静态库(一个.lib文件)。如果你运气不好,也许你应该试试。

它还需要大约90个其他.dll。当我复制90MB的cygwin DLL时,它起作用了,但这有点不方便,我不知道为什么需要这么多。你知道这可能是为什么/如何避免吗?@protonbetadeca可以尝试静态链接,这样可以删除依赖关系。谢谢。我怎么做呢?我试着用-static标记编译,但它给了我一大堆来自libcurl的未定义引用错误