我正在尝试在Visual Studio(C++)中构建ANTLR4。
这些是错误: 尝试构建时出错
未解析的外部是虚拟析构函数。
为什么这样实施?纯虚拟析构函数必须具有函数体。如何修复它并构建 ANTLR4?
提前致谢
似乎您使用了 Github 的最新代码。有一个拉取请求,其中包含对C++目标中最近更改的修复。只需下载并应用此补丁即可进行代码编译。目前存储库中没有VS 2017解决方案,因此,如果您愿意,可以为此创建拉取请求。
虽然与析构函数无关,但如果您还没有克服它们,还有其他挑战。 在VS中构建ANTLR4解决方案是一项挑战。 除了几次 nuget 安装之外,我记得必须对项目文件进行一些操作,如下所示:
<ItemGroup>
<Antlr4 Include="YOURGRAMMAR.g4">
<Generator>MSBuild:Compile</Generator>
<Listener>True</Listener>
<Visitor>True</Visitor>
</Antlr4>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Antlr4" Version="4.5.3 YOUR VERSION" />
</ItemGroup>
毕竟,我在 .g4 语法文件中仍然没有语法突出显示。 但是上面的更改至少设置了构建操作,并在必要时让后台ANTLR类重建。