2

我想使用 antlr(目标 C 语言)编写一个程序,并且我想将库(C 运行时分发)发送到包中,以便它可以在其他机器上使用,而无需在该机器上安装 antlr。我已经在这个链接http://www.antlr.org/download/C上下载了这个运行时的最新版本。谁能告诉我我是否可以这样做?干杯。

4

2 回答 2

2

是的,您可以静态链接它,但如何做到这一点取决于您的平台。对于带有 gcc 或 llvm 的 Linux,您可以执行以下操作:

g++ main.c -Wl,-Bstatic -lantlr3c -Wl,-Bdynamic -l<other dynamic libraries>

-Bstatic 之后的任何内容都将包含在可执行文件中。

根据您的管辖范围,C 目标许可证要求您以某种方式在程序中包含许可证文本。

于 2012-07-05T18:14:13.323 回答
0

我没有使用 C 目标,但使用了 C# 目标。我认为它们以类似的方式工作。

您需要将 C 运行时库与您的程序一起部署,因为生成的解析器和词法分析器将使用该库中的函数。

您不需要安装 Antlr 本身,例如 AntlrWorks 或任何 .jar 文件

于 2012-07-05T11:27:53.210 回答