用于部署使用外部库的应用程序的正确生成选项 我试图制作一个小C++程序,它能修复网页并进行一些操作。我想cURL获取我网站的内容。我下载了
我的IDE是Code::Blocks。 我已将以下参数添加到我的项目构建选项中: 它运行良好,但只在IDE中运行。当我试图从explorer.exe运行我的可执行文件时,我收到一条消息,说我无法运行程序,因为缺少用于部署使用外部库的应用程序的正确生成选项 我试图制作一个小C++程序,它能修复网页并进行一些操作。我想cURL获取我网站的内容。我下载了,c++,linker,codeblocks,C++,Linker,Codeblocks,我的IDE是Code::Blocks。 我已将以下参数添加到我的项目构建选项中: 它运行良好,但只在IDE中运行。当我试图从explorer.exe运行我的可执行文件时,我收到一条消息,说我无法运行程序,因为缺少libcurl.dll。如何解决这个问题 我的编译器是MinGW。您需要将cURL dll与可执行程序一起分发(部署),或者您必须以某种方式确保Windows将在dll搜索路径中找到该dll。通常,找到可执行文件的目录和当前目录是dll搜索路径的一部分。这与您的开发环境和/或编译器无关
libcurl.dll
。如何解决这个问题
我的编译器是MinGW。您需要将cURL dll与可执行程序一起分发(部署),或者您必须以某种方式确保Windows将在dll搜索路径中找到该dll。通常,找到可执行文件的目录和当前目录是dll搜索路径的一部分。这与您的开发环境和/或编译器无关。
欢迎来到地狱 您需要将cURL dll与可执行程序一起分发(部署),或者您必须确保Windows会在dll搜索路径中找到该dll。通常,找到可执行文件的目录和当前目录是dll搜索路径的一部分。这与您的开发环境和/或编译器无关。
欢迎来到地狱 您需要将cURL dll与可执行程序一起分发(部署),或者您必须确保Windows会在dll搜索路径中找到该dll。通常,找到可执行文件的目录和当前目录是dll搜索路径的一部分。这与您的开发环境和/或编译器无关。
欢迎来到地狱 您需要将cURL dll与可执行程序一起分发(部署),或者您必须确保Windows会在dll搜索路径中找到该dll。通常,找到可执行文件的目录和当前目录是dll搜索路径的一部分。这与您的开发环境和/或编译器无关。
欢迎来到地狱 对此的解释是C::B用来在IDE中运行程序的工具,
cb_console_runner.exe
,“helpfully”添加在
项目到运行时DLL搜索顺序
因此,由于您已将curl windows\bin
指定为链接器搜索目录,
这就是libcurl.dll
所在的位置,您的程序在通过cb\u console\u runner.exe运行时会找到它。
但是由于curl windows\bin
不在windows DLL搜索顺序中,因此找不到DLL
当您直接运行可执行文件时
要验证这一点,请执行以下操作:-
- 成功构建您的项目
- 在IDE中成功运行它
- 从链接器搜索目录中临时删除
curl windows\bin
- 再次从IDE运行,无需重建
在第二次运行时,您将得到缺少的libcurl.dll
错误
要能够直接运行程序,必须在中找到libcurl.dll
这个
顺便说一句,链接libcurl.a
和libcurldll.a
对您来说是毫无意义的。
如果要使用DLL,请不要链接libcurl.a
事实上,只要您链接libcurldll.a
,将curl windows\bin
指定为
链接器搜索目录是毫无意义的,因为在构建时您不需要任何东西,它也不存在
只会导致您的问题所涉及的运行时混乱 对此的解释是C::B用来在IDE中运行程序的工具,
cb_console_runner.exe
,“helpfully”添加在
项目到运行时DLL搜索顺序
因此,由于您已将curl windows\bin
指定为链接器搜索目录,
这就是libcurl.dll
所在的位置,您的程序在通过cb\u console\u runner.exe运行时会找到它。
但是由于curl windows\bin
不在windows DLL搜索顺序中,因此找不到DLL
当您直接运行可执行文件时
要验证这一点,请执行以下操作:-
- 成功构建您的项目
- 在IDE中成功运行它
- 从链接器搜索目录中临时删除
curl windows\bin
- 再次从IDE运行,无需重建
在第二次运行时,您将得到缺少的libcurl.dll
错误
要能够直接运行程序,必须在中找到libcurl.dll
这个
顺便说一句,链接libcurl.a
和libcurldll.a
对您来说是毫无意义的。
如果要使用DLL,请不要链接libcurl.a
事实上,只要您链接libcurldll.a
,将curl windows\bin
指定为
链接器搜索目录是毫无意义的,因为在构建时您不需要任何东西,它也不存在
只会导致您的问题所涉及的运行时混乱 对此的解释是C::B用来在IDE中运行程序的工具,
cb_console_runner.exe
,“helpfully”添加在
项目到运行时DLL搜索顺序
因此,由于您已将curl windows\bin
指定为链接器搜索目录,
这就是libcurl.dll
所在的位置,您的程序在通过cb\u console\u runner.exe运行时会找到它。
但是由于curl windows\bin
不在windows DLL搜索顺序中,因此找不到DLL
当您直接运行可执行文件时
要验证这一点,请执行以下操作:-
- 成功构建您的项目
- 在IDE中成功运行它
- 从链接器搜索目录中临时删除
curl windows\bin
- 再次从IDE运行,无需重建
在第二次运行时,您将获得缺少的libcurl.dll