gpt4 book ai didi

c++ - 尝试构建简单的 HTTP 监听器时,VS2015 中的 casablanca 发生链接器错误

转载 作者:行者123 更新时间:2023-12-03 12:49:59 26 4
gpt4 key购买 nike

作为有关 Rest 服务的学习过程的一部分,我尝试使用 Microsoft c++ REST sdk“casablanca”构建一个简单的 HTTP 监听器。我最初的目标是测试它是否可以接收指向 localhost 的简单 POST 请求并将文本保存在文件中。

我正在 VS2015 上构建这个项目。我使用内置的包管理器查找并安装 sdk,并从 github 下载所需的头文件并将它们添加为附加包含目录。尝试构建时,我不断收到“无法解析的外部符号”错误,错误代码为 LNK2019

这是到目前为止的代码

#include <cpprest/http_listener.h>

#include <iostream>
#include <stdlib.h>

using namespace web;
using namespace web::http;
using namespace web::http::experimental::listener;
using namespace utility;
using namespace std;

#define TRACE(msg) wcout << msg;
#define TRACE_ACTION(a, k, v) wcout << a << L" (" << k << L", " << v << L")\n";

map<utility::string_t, utility::string_t> dictionary;



void handle_post(http_request request)
{
TRACE(L"\nhandle POST\n");

utility::string_t input;
input = request.to_string();
utility::ofstream_t out("output.txt");
out << input;
out.close();

}

int main(int argc, char** argv)
{

http_listener listener(L"http://localhost:8080");
listener.support(methods::POST, handle_post);


try
{
listener
.open()
.then([&listener]() {TRACE(L"\nstarting to listen\n"); })
.wait();

while (true);
}
catch (exception const & e)
{
wcout << e.what() << endl;
}
}

我遇到的错误之一:

function_main 中引用了未解析的外部符号“__declspec(dllimport) public:_thiscall web::uri::uri(wchar_t const*)”(__imp_??0uri@web@@QAE@PB_W@Z)

如果有人能指出我做错了什么,我将不胜感激

最佳答案

您是否已将 cpprest.lib 作为附加依赖项包含在“链接器”->“输入”中。确切的名称取决于您是否正在对 cpprest 库进行静态链接或动态链接。

如果您正在进行静态链接,您可能还需要添加 _NO_ASYNCRTIMP 预处理器定义。

希望这有帮助

关于c++ - 尝试构建简单的 HTTP 监听器时,VS2015 中的 casablanca 发生链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com