- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于我的代码有点太长,我想如果有人愿意帮助我并且需要代码的话,发布一个github链接会更容易:https://github.com/Pigums/Cminus-Compiler
在 cygwin 中,我运行这些命令:
bison -d step3.y
flex step3.fl
gcc step3.tab.c lex.yy.c -lfl -o step3
然后弹出如下错误:
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x0): multiple definition of `CreateTemp'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x0): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x4a): multiple definition of `Insert'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x4a): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x140): multiple definition of `PrintSym'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x140): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x19f): multiple definition of `Display'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x19f): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x1e6): multiple definition of `Search'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x1e6): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x266): multiple definition of `Delete'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x266): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x2fd): multiple definition of `ASTCreateNode'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x2fd): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x3c0): multiple definition of `ASTattachleft'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x3c0): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x3f6): multiple definition of `PT'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x3f6): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0x427): multiple definition of `ASTprint'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0x427): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.text+0xa83): multiple definition of `compareFormals'
/tmp/ccfXBuoP.o:lex.yy.c:(.text+0xa83): first defined here
/tmp/ccdKHQL3.o:step3.tab.c:(.bss+0x0): multiple definition of `mem'
/tmp/ccfXBuoP.o:lex.yy.c:(.bss+0x14): first defined here
collect2: error: ld returned 1 exit status
不确定我做错了什么,尝试查找错误,但我认为我得到的答案不是我正在寻找的答案。这里有什么问题?
最佳答案
#include "symtable.c"
#include "ast.c"
这就是你的问题。通过将这两个 C 文件包含在 step3.y
的 requires
部分中,它们的内容最终同时出现在 lex.yy.c
和 step3.tab.c
,所以一切都被定义了两次。
相反,您应该包含头文件,而不是 C 文件,然后通过将它们传递给 gcc 来编译和链接 ast.c
和 symbtable.c
:
gcc step3.tab.c lex.yy.c ast.c symtable.c -o step3
(也可以使用Makefile
分别编译每个文件,然后将它们链接在一起,这样只需要重新编译发生变化的文件,但那是完全不同的事情)
请注意,这并非特定于 flex 或 bison。你不应该 #include
C 文件,除非你确切地知道这意味着什么并且你有一个很好的理由。
关于compiler-construction - 弹性/Bison : Multiple definition of 'said function' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53254160/
好的正则表达式大师,我有一个很长的文本,我试图在包含单词“he said”和类似变体的句子中添加引号。 例如: s = 'This should have no quotes. This one sh
我不了解可以将元组结构强制转换为函数的功能,如下所示: struct MyType(u8); let optional_mytype: Option = Some(12).map(MyType); /
来自Python FAQ ,我们可以读到: In Python, variables that are only referenced inside a function are implicitly
在带有 C# 的 Visual Studio 中,如何在这样的字符串中声明一个字符串?我看到了一些 Stack Overflow 页面,例如“Java string inside string to
由于我的代码有点太长,我想如果有人愿意帮助我并且需要代码的话,发布一个github链接会更容易:https://github.com/Pigums/Cminus-Compiler 在 cygwin 中
下面的文件是 vanilla.js,文本编辑器是 ATOM,使用终端在 nodejs 上运行。代码片段如下: 'use strict'; const Readline = require('readl
Sqlfiddle 是 http://sqlfiddle.com/#!2/7df50/4 基本上,我有 3 个表:组、成员资格、客户。 tbl.client = client_id (PK, AI),
奇怪的事情正在发生。 我有一个使用 CMake 编译的 C 语言静态库。 我反对在 Ubuntu 上构建可执行文件,但在 Snow Leopard 下,当我尝试这样做时出现 undefined sym
我正在用 Python 3 制作一个小图形界面,它应该下载一个带有 URL 的 youtube 视频。 我用了youtube_dl模块。 这是我的代码: import youtube_dl # You
我有一个遍历数据数组 plotData 的循环。在 plotData 之外,我构建了另一个名为 visiblePoints 的数组。然后我遍历 visiblePoints 来构建一个对象 thisRo
我一直在 CSS 中使用 :before 表示将内容放在选择器之前。我对此从来没有遇到过任何问题,但是,我偶然发现了一些让我感到困惑的事情,选择器的 :before 是在 inside 元素后面而不是
我正在构建一个针对 iOS7 和 iOS8 的应用。我请求用户允许发送推送通知。但出于某种原因,iOS7 和 iOS8 都没有调用我的 application:didFailToRegisterFor
package springdemo4; import org.springframework.context.support.ClassPathXmlApplicationContext; publ
我正在寻找可以用\"替换字符串中每个引号的东西。 我试过这个: local te = 'Press "start" to begin!' te = string.gsub(te,'"','\") pr
我有这段代码,我使用泛型定义了两个类。 1. 可以具有通用类型数据的部分。 2. 使用某种构建器模式并存储此类部分列表的配置。 运行此代码时会出现编译错误,我不知道为什么。我已经提到了类型。 错误:不
我正在尝试创建一个结构,它有一个使用 Write 特性的 BufWriter,这样这个结构就可以有一个缓冲的 writer,它可以是任何实现该特征:File、Stream 等。但是我的函数中存在一个问
这个问题在这里已经有了答案: Callback Method if user declines Push Notification Prompt? (11 个答案) 关闭 5 年前。 在 iOS 9
我正在尝试编写一个查询,该查询将返回 Sakila 数据库中最长的电影租赁持续时间以及租赁该电影(以及电影的标题)的客户。 首先,我编写了以下查询,该查询应该返回 film_id、inventory_
完整错误信息: Error MySQL said: Documentation Cannot connect: invalid settings. Connection for controluser
我在 VMware 上使用 xampp,操作系统是 Linux,在选择或删除或任何东西时卡住了,不知道为什么会这样。我还检查了 xampp 功能是否正在运行,即 Mysql、Apache 和 ProF
我是一名优秀的程序员,十分优秀!