将nuget包添加到C++;项目在构建时给出LNK2001错误 我有一个使用CPPRSTSTK的C++ Visual Studio 2015项目。我在VisualStudio中使用Tools/nuget package Manager为cpprest添加了nuget包。我对来自cpprest的include文件没有错误,并且它们被Visual Studio识别,问题是当我尝试构建我的项目时,我得到了很多LNK2001错误,例如: Error LNK2001 unresolved external symbol "class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __cdecl utility::conversions::to_string_t(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &&)" (?to_string_t@conversions@utility@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@$$QEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z) check-cpprest-nug D:\Work\visual-projects\check-cpprest-nug\check-cpprest-nug\check-cpprest-nug.obj 1 错误LNK2001未解析的外部符号“class std::basic_string\uu cdecl实用工具::转换::to_string_t(class std::basic_string&)”(?to_string_t@conversions@实用工具@@YA?AV?$basic_string@_WU?$char_traits@_W@性病病毒$allocator@_W@2@@std@$$QEAV?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@4@@Z)检查cpprest nug D:\Work\visual Project\check cpprest nug\check cpprest nug\check-cpprest-nug.obj 1 我认为这个链接是自动的,这是最初的C语言,但是我找不到C++的具体内容。
我是否缺少项目属性中的任何步骤 **编辑** 我正在添加一段代码以提供更多上下文,但我认为问题要么与链接相关,要么是由于项目配置。当cpprest是静态链接而不是使用nuget链接时,项目工作正常将nuget包添加到C++;项目在构建时给出LNK2001错误 我有一个使用CPPRSTSTK的C++ Visual Studio 2015项目。我在VisualStudio中使用Tools/nuget package Manager为cpprest添加了nuget包。我对来自cpprest的include文件没有错误,并且它们被Visual Studio识别,问题是当我尝试构建我的项目时,我得到了很多LNK2001错误,例如: Error LNK2001 unresolved external symbol "class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __cdecl utility::conversions::to_string_t(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &&)" (?to_string_t@conversions@utility@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@$$QEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z) check-cpprest-nug D:\Work\visual-projects\check-cpprest-nug\check-cpprest-nug\check-cpprest-nug.obj 1 错误LNK2001未解析的外部符号“class std::basic_string\uu cdecl实用工具::转换::to_string_t(class std::basic_string&)”(?to_string_t@conversions@实用工具@@YA?AV?$basic_string@_WU?$char_traits@_W@性病病毒$allocator@_W@2@@std@$$QEAV?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@4@@Z)检查cpprest nug D:\Work\visual Project\check cpprest nug\check cpprest nug\check-cpprest-nug.obj 1 我认为这个链接是自动的,这是最初的C语言,但是我找不到C++的具体内容。,c++,visual-studio,nuget,lnk2001,C++,Visual Studio,Nuget,Lnk2001,我是否缺少项目属性中的任何步骤 **编辑** 我正在添加一段代码以提供更多上下文,但我认为问题要么与链接相关,要么是由于项目配置。当cpprest是静态链接而不是使用nuget链接时,项目工作正常 std::ostringstream msg; utility::string_t address(U("https://*** --- ***")); http::uri uri = http::uri(address); http::cli
std::ostringstream msg;
utility::string_t address(U("https://*** --- ***"));
http::uri uri = http::uri(address);
http::client::http_client req(uri);
try
{
auto response = req.request(http::methods::GET).get();
auto status = response.status_code();
if (status != http::status_codes::OK)
{
msg << "COUNTER PARTY LOOKUP :: Http Request could not be completed successfully with error code: " << status << "\n";
throw std::runtime_error(msg.str());
}
json::value obj = response.extract_json().get();
std::cout << utility::conversions::to_utf8string( obj.serialize() )<< std::endl;
}
catch (std::exception &e)
{
msg << "COUNTER PARTY LOOKUP :: Problem opening connection. Try again later." << std::endl;
}
std::ostringstream msg;
实用工具::字符串地址(U(“https://***--***”);
http::uri=http::uri(地址);
http::client::http_客户端请求(uri);
尝试
{
自动响应=req.request(http::methods::GET).GET();
自动状态=响应。状态\代码();
if(status!=http::status\u code::OK)
{
msg由于我没有您的代码,也无法追踪您问题的具体点,因此这是我的建议
建议
您应该静态连接到cpprestsdk
,对于我来说,我应该在预处理中添加\u NO\u ASYNCRTIMP
,然后将bcrypt.lib
和winhttp.lib
添加到项目的链接器中
要实现所有这些,您应该安装一个名为的nuget包
安装项目时,此软件包将自动将这些点添加到项目中
记住要包含这些头文件:
#include <cpprest/http_client.h>
#include <cpprest/filestream.h>
#包括
#包括
注意:应使用调试/发布
配置和win32/x64
平台。将平台工具集保存到Visual Studio 2015 v140
除了,如果它对您的问题不起作用,我建议您可以与我们共享您的代码,以便我们能够更快地解决问题。您可以显示一个代码,但我记得,当我将std::string
传递给cpprestsdk
中使用std::wstring
的任何函数时,我遇到了这个错误,或者如果您试图传递原始const char*
,如果是这样,解决方法非常简单。请键入“Hello world”
,而不是键入:L“Hello world”
您能为我们分享一段代码来解决这个问题吗?另外,nuget的具体名称是什么?嗨,Mahshid,这个问题有什么更新吗?请检查我的回答是否有助于您处理这个问题,并让我们知道它是否有帮助。它将帮助我们为您提供更好的支持。嗨,我添加了一些代码。当cpprest是statica时,该项目就可以正常构建了我只是不能用nuget来构建它。而且我不得不使用我公司的cpprest nuget软件包。@PerryQian MSFT