2017-01-20 3 views
0

Как часть процесса обучения сервисов Rest, я пытаюсь создать простой HTTP-прослушиватель с помощью C++ REST sdk «casablanca». Сначала моя цель - проверить, может ли он получить простой запрос POST, указанный на localhost, и сохранить текст в файле.Ошибки компоновщика с casablanca в VS2015 при попытке создать простой HTTP-прослушиватель

Я строю этот проект на 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; 
    } 
} 

Одна из ошибок я получаю:

неразрешенной внешний символ "__declspec (dllimport) public: _thiscall web :: uri :: uri (wchar_t const *)" (__imp _ ?? 0uri @ web @@ QAE @ PB_W @ Z), на который ссылается функция function_main

Буду признателен, если кто-то сможет укажите мне, что я делаю неправильно

ответ

0

Вы включили cpprest.lib в качестве дополнительных зависимостей в Linker-> Input. Точное имя зависит от статической или динамической ссылки библиотеки cpprest.

Также вам может понадобиться добавить определение препроцессора _NO_ASYNCRTIMP, если вы выполняете статическое связывание.

Надеюсь, что это поможет

 Смежные вопросы

  • Нет связанных вопросов^_^