vcpkg准备ANTLR项目
大约 1 分钟
vcpkg准备ANTLR项目
环境准备
https://www.antlr.org/download/antlr-4.11.1-complete.jar
vcpkg integrate install
vcpkg integrate project
vcpkg install antlr4:x64-windows
vcpkg install llvm:x64-window //下载llvm需要准备170G的磁盘空间!!
项目-属性-生成事件-生成前事件-命令行
java -jar antlr-4.11.1-complete.jar -Dlanguage=Cpp -visitor -package langtest NC.g4
cd antlr/bin
java -jar antlr-4.11.1-complete.jar \
-Dlanguage=Cpp \
-visitor \
-package perfect_complex \
-o "../../" \
"../Complex.g4"
项目-属性-C/C++-扫描源以查找依赖关系【是】将包含转换为导入【否】
由于文件位置问题,修改一下添加一个头文件,这样自动生成的代码运行就不会出错了。
如果是多文件夹的话,也得先添加一个文件到项目文件夹下,另一个文件在生成的parser文件那边。
//antlr4-runtime
#pragma once
#include "antlr4-runtime/antlr4-runtime.h"
namespace antlr4::internal{
using OnceFlag = std::once_flag; //这个也可以不要
using std::call_once;
}
如果要使用manifest:
vcpkg.json
{
"name": "langtest",
"version": "0.0.1",
"dependencies": [
"antlr4",
"llvm"
]
}
在项目-属性-vcpkg中打开use manifest,这样就可以将内容集成到项目中了
其他方法
如果使用自己编译的antlr的话,需要用VS打开整个antlr/runtime当成一个cmake项目。如果只是打开sln则不知道要不要引入其他的东西。