Antlr4的c++版本(visual-studio)使用

官方demo

按照官网首页配置好,测试能够使用antlr4和grun命令之后:

创建自己的项目

如果要自己创建antlr4的项目,在刚才几步能正常执行之后,在【这个刚刚打开的解决方案里面】创建自己的项目:

新建项目

注意选择【添加到解决方案】。

修改以下属性:

  • 【新建的项目】里【引用】右键【添加引用】,选上antlr4cpp-vs2015
  • 添加引用
  • antlr4cpp-vs2015
  • 【源文件】-右键【添加】-【现有项】,选中上面几级目录的demo\generated文件夹下所有h、cpp文件
  • 添加generate文件
  • 新建一个main.cpp,里面复制过来antlr4cpp-demo的main.cpp
  • 在【新建的项目】上右键【属性】打开属性页面(这时,单击antlr4cpp-demo这个项目会切换到这个项目的对应属性,可以直接方便地复制粘贴),把antlr4cpp-demo的以下属性复制过来:
    • 复制【输出目录】
    • 输出目录
    • 修改【字符集】为Unicode
    • 字符集
    • 复制【C/C++】-【常规】-【附加包含目录】
    • 附加包含目录
  • 右上角【配置管理器】-找到这个项目后【编辑】,重命名为Debug DLL
  • 编辑
  • 重命名
  • 运行&改编码(选择是,因为之前把字符集改成了Unicode)
  • 改编码

之后就可以运行了!

LIB

LIB介绍:

LIB生成&使用:https://www.cnblogs.com/TenosDoIt/p/3203137.html

LIB创建

用桌面向导创建一个空的LIB

桌面向导

弹出的应用程序类型选择.lib

新建MyLIB.h

1
2
3
4
5
6
7
8
9
10
11
#pragma once
void fun(int a);

extern int k;

class testclass
{
public:
testclass();
void print();
};

MyLIB.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "MyLIB.h"
#include <iostream>

void fun(int a)
{
std::cout << a << "lib gen\n";
}

int k = 222;

testclass::testclass()
{
std::cout << "123\n";
}

void testclass::print()
{
std::cout << "this is testcalss\n";
}

之后设置为启动项目,生成就可以得到lib文件:

生成lib

【输出】-【生成】可以看到目录

生成

LIB使用-引用

使用:新建空项目,添加引用,创建一个头文件把之前头文件的东西复制进来

引用&头文件

新建一个main.cpp

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include "MyLIB.h"

int main()
{
fun(4);
std::cout << k << std::endl;
testclass tc;
tc.print();
return 0;
}

LIB使用-复制LIB文件

找到lib文件,复制到main.cpp目录下,复制头文件过来,复制#pragma comment(lib, "lib.lib")到main.cpp文件中main函数上面即可。

ANTLR的lib生成

antlr4cpp-antlr2015这个项目属性里面改成配置类型-静态库,生成后复制得到的lib文件到自己的项目目录下。

复制antlr4-runtime.h等所有头文件到自己的项目目录下。