使用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

vcpkg通过search查找是否有包

可以看到drogon是存在的,并且有选择的安装所需要的功能.下面开始安装:

#通过vcpkg安装drogon  [选择需要的功能包] :x64-windows代表安装windows 64位
vcpkg install drogon[ctl,sqlite3,orm,redis]:x64-windows

通过list,查找已经安装的软件包:

# vcpkg list 显示已经安装的软件包
vcpkg list

vcpkg通过list,列出已经安装过的软件包


通过drogon_ctl创建项目
#通过drogon_ctl创建项目名为cppweb的项目
drogon_ctl create project cppweb

使用VS以打开文件的方式,找到cppweb所在的文件路径,并打开.

在VS中设置CMake的工具链

在CMake设置中,找到CMake工具链:

在VS中设置CMake的工具链,设置vcpkg的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

使用CMake命令生成VS解决方案文件

在build目录查看生成的项目解决文件:

查看CMake命令生成VS项目解决方案文件

后面就是用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 ,看一下运行的结果:

drogon运行简单的示例


秋风 2023-01-01