使用vcpkg安装Drogon
前言
在家休息,因为后面就不能在家办公了,国庆后,就没去公司上几天班,基本都是在家办公的,一时心血来潮,继续尝试Drogon,一直想的学C++,几次学了点语法,就没有继续,这次决定想将Blog改为从Asp.Net Core改为Drgoon实现.vcpkg更新(已经安装过)
没有安装vcpkg的,可以去看: VCPKG的安装
vcpkg更新前,先去拉取最新的源,这个就不多说了..\vcpkg.exe update
.\vcpkg.exe upgrade
.\vcpkg.exe upgrade --no-dry-run
安装drogon
可以通过search查找项目是否存在
# vcpkg 查找是否有包
vcpkg search drogon
可以看到drogon是存在的,并且有选择的安装所需要的功能.下面开始安装:
#通过vcpkg安装drogon [选择需要的功能包] :x64-windows代表安装windows 64位
vcpkg install drogon[ctl,sqlite3,orm,redis]:x64-windows
通过list,查找已经安装的软件包:
# vcpkg list 显示已经安装的软件包
vcpkg list
#通过drogon_ctl创建项目名为cppweb的项目
drogon_ctl create project cppweb
使用VS以打开文件的方式,找到cppweb所在的文件路径,并打开.
在CMake设置中,找到CMake工具链:
使用VS开发者命令行(这一个不是必须,如果你的CMake单独安装,并配置的环境变量,这个是不需要的),进入cppweb所在目录,查看是否有build目录并进入,使用以下命令:
cmake .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE=F:/gitcode/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows
在build目录查看生成的项目解决文件:
后面就是用VS打开生成的解决方案文件了.
#include <drogon/drogon.h>
using namespace std;
using namespace drogon;
int main() {
//Set HTTP listener address and port
app().addListener("0.0.0.0", 80);
//Load config file
//drogon::app().loadConfigFile("../config.json");
//Run HTTP framework,the method will block in the internal event loop
app().registerHandler("/hello?username={name}", [](const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const string& name) {
Json::Value json;
json["result"] = "ok";
json["message"] = string("hello,") + name;
auto resp = HttpResponse::newHttpJsonResponse(json);
callback(resp);
}, { Get,"LoginFilter" });
app().run();
return 0;
}
在浏览器输入 http://localhost/hello?username=tom ,看一下运行的结果:
秋风
2023-01-01