同一行有多个定义错误。 (C++)

2024-01-11

我有一个新的复杂问题。编译器抱怨我正在重新定义一个函数,但它说我声明它的第一个地方有重新声明的位置。当我将 cpp 文件包含在另一个文件中时,问题就开始了。为了解决我的问题,我将其导出到 hpp 文件,但为了知道是否有效。这是我的代码。

主要.cpp:

#include <iostream>
#include <string>
#include "main.hpp"

using namespace std;

int main(int argc, char *argv[])
{
//Deal with arguments and send them to the correct functions
if (argc >= 2){

string op = argv[1];
if (op == "-a" || op == "--automatic"){
    if (argc >= 3){
        string FName = argv[2];
        bool dbgbool;
        if (argc == 4){
            string dbgstring = argv[3];
            if (dbgstring == "debug"){
                dbgbool = true;
            }
        }
        Lexer(FName, dbgbool);
    }
}
else{
    cout << "Invalid Argument\n";
    goto help;
}

return 0;
}
//Or, just write help and info
help:
cout << "\n";
cout << "bwc v0.0.1U-(Unstable)\n\n";
cout << "Usage: bwc <operation> [...]\n";
cout << "Operations:\n";
cout << "   bwc {-a --automatic} <file(s)>\n";
cout << "   bwc {-i --interactive}\n";
cout << "   bwc {-c --error-codes}\n";
cout << "\n";
return 0;
}

LA.cpp:

#include<iostream>
#include<fstream>
#include<string>
#include<sstream>

using namespace std;

string Lexer(string FileN, bool dbg){ //This is the line of re-declaration.

//If debugging,this writes out put to the console
if (dbg == true)
    cout << "Beginning Lexical Analysis...\n";

//Create new file stream and set it equal to the source file
ifstream Ifile (FileN.c_str());
//Test if the last step failed, if so, write an error to the console, and terminate the compiler
if (!Ifile.is_open()){
    cout << "Unable to open file. Path to file may not exist, or the file name could be incorrect.\n";
    cout << "Error Code: -1\n";
    return NULL;}
//Create new stringstream, and set it equal to the source file
string IFStream;
Ifile >> IFStream;
//Close the source file
Ifile.close();

//If debugging,this writes out put to the console
if (dbg == true)
    cout << "Source file sucessfully read.\n";

//Set out stream equal to the modified in stream
string OFStream = IFStream;
return OFStream;
}

最后, 主要.hpp:

#ifndef MAIN_HPP_INCLUDED
#define MAIN_HPP_INCLUDED

#include "LA.cpp"
extern string Lexer(string,bool);

#endif // MAIN_HPP_INCLUDED

谢谢, 布鲁克斯·拉迪


Your main.cpp包括main.hpp其中包括LA.cpp,所以内容LA.cpp正在编译一次LA.cpp一次main.cpp.

.hpp 文件应仅包含声明(string Lexer(string,bool);),而定义(string Lexer(string,bool) {... })应该放在.cpp中

当您处理类方法时,您不会看到此类问题,因为编译器接受方法的定义。但函数只能在 .cpp 文件中定义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一行有多个定义错误。 (C++) 的相关文章

  • 任务计划程序控制台输出在哪里? (C# 控制台应用程序)

    我正在运行 C Windows 控制台应用程序 并通过任务计划程序传递几个参数 它全天运行 将其他应用程序创建的平面文件数据加载到 SQL Server 中 该程序间歇性失败 并且我有 Try Catch 逻辑 该逻辑使用 Console
  • 递归显式模板实例化以导出库的符号

    在我之前的问题中我问过递归显式模板实例化是否可能 https stackoverflow com questions 7395113 is recursive explicit template instantiation possible
  • 如何在 C++ 中的嵌套词法作用域可访问的作用域中声明静态信息?

    我想声明范围的标识符 该标识符将用于自动填充最内部范围内任何日志记录语句的字段 它们通常会 但并非总是如此 例如 lambda 使用 引入的块 匹配封闭块的 名称 用法看起来像这样 namespace app LOG CONTEXT app
  • 查找周边上的点来表示边界/形状

    我有一个简单的二维网格 其格式为myGrid x y 我正在尝试找到一种方法来找到所选网格周围的周长 这样我就有了所选网格的形状 这是我的意思的一个例子 这里的想法是找到所有相关的 角点 也就是图像周边的红点 放入一个列表中 这样我就可以从
  • 有了private修饰符,为什么可以直接访问其他对象中的成员呢?

    我有以下代码 class A private int x public A x 90 A A a1 A a2 a1 x 10 a2 x 20 int getX return this gt x 我知道代码可能很奇怪 但我不明白为什么a1 a
  • ctypes.ArgumentError:不知道如何转换参数

    我在C库中定义了一个函数 如下所示 int Test char str1 int id1 char str2 float val float ls 我想在Python中使用它 所以我编写了以下Python代码 str1 a str2 b i
  • 类型定义存在于两个库中

    我正在使用 NET 4 5 构建 ASP NET Web 窗体网站 错误 The type System ComponentModel DataAnnotations Schema ForeignKeyAttribute exists in
  • 可以轻易移动,但不可轻易复制

    是否可以创建类类型 即 普通移动构造 但不是普通复制构造 但仍然可复制构造 普通复制构造 但不是普通移动构造 但仍然可移动构造 可以简单地复制分配 但不能简单地移动分配 但仍然可以移动分配 可以简单地移动分配 但不能简单地复制分配 但仍然可
  • 驱蚊程序?

    不 我认真的 最近 我读到 当电脑的压电蜂鸣器以一定频率振动时 声音可以驱赶蚊子 真的吗 如何以编程方式访问 PC 蜂鸣器 而不是扬声器 最好使用 C 我不知道有没有蚊子 但我的头疼得要命 啊啊 using System Runtime I
  • boost变体简单调用常用方法

    我有两个指针 只能设置其中之一 所以我正在考虑使用 boost variant 例如 boost variant
  • DLR 返回类型

    我需要 DLR 的帮助 我正在实现 IDynamicMetaObjectProvider 和 DynamicMetaObject 但在获取预期返回类型时遇到一些问题 我在元对象中覆盖 BindInvokeMember 我可以看到所有参数类型
  • std::make_shared 作为默认参数无法编译

    在 Visual C 2008 和 2010 中 以下代码无法编译并出现以下错误 include
  • 变形:Opencv 使用 Visual Studio 将图像显示到曲面屏幕

    我正在尝试使用 opencv API 来扭曲图像 以便将其显示到曲面屏幕上 我已经浏览了opencv中提供的翘曲apihere http docs opencv org 2 4 modules stitching doc warpers h
  • 在浏览器中测试wcf服务

    我无法在浏览器中调用基本的 wcf web 方法 即使使用
  • 等效

    这是否保证始终为真 std numeric limits
  • BlueZ D-Bus C,应用 BLE

    我正在尝试编写一个应用程序来搜索附近的蓝牙设备并与它们通信 我的应用程序将用 C 语言编写 并打算在 Linux 下工作 是否有通过 C 中的 D Bus 使用 BlueZ 的教程或示例 此应用程序的目的是从 BLE 中的文件发送数据 你能
  • 对嵌套属性使用 XmlAttributeOverrides

    我试图使用 XmlAttributeOverrides 来控制类序列化后哪些类属性出现在 xml 中 它适用于 根 类上的属性 但不适用于嵌套属性 这是一个简单的例子来说明我想要完成的任务 我的类层次结构如下 public class Ma
  • 如何在 OpenCV 中删除 mouseCallback

    在使用 C 的 OpenCV 中 有没有办法删除 mouseHandler int event int x int y int flags void param 通过函数添加到窗口 image window cv setMouseCallb
  • 以编程方式连接和断开 USB,“无需拔出和重新插入”

    我需要以编程方式连接和断开 USB 也就是说 我已经插入了USB设备 我需要使用 C NET 应用程序传输文件 该应用程序将监视特定文件夹并将文件从该文件夹传输到 USB 驱动器 我需要在文件传输后断开 USB 设备的连接 并在需要时连接
  • 文件按文件名模式存在

    我在用 File Exists filepath 我想做的是将其替换为模式 因为文件名的第一部分发生了变化 例如 该文件可以是 01 peach xml 02 peach xml 03 peach xml 如何根据某种搜索模式检查文件是否存

随机推荐

  • 将 csv 文件的前 x 行读取到新的输出文件中?

    如何只复制 a 的前 x 行csv文件到一个新的csv通过终端文件 Brief 您将使用 Linux 终端 控制台 Use head n NUMBEROFLINES file csv获得第一NUMBEROFLINES的线路 使用 shell
  • 选择具有特定值的行之后的行

    嘿 再次 我仍然掌握查询和其他东西 所以请原谅所有常见的 SQL 问题 8 无论如何 我试图选择某个值之后的行 不明白 好吧 这就是它实际的样子 表 消息 message id thread id user id to id body me
  • 跨浏览器剪贴蒙版

    我的网站有导航 以矩形按钮列表的形式呈现有圆角 每个按钮都应该有自己的自定义背景 即照片 照片比按钮大 并且应该随着鼠标在该按钮上的移动而移动 我们有一种效果 就像我们透过窗户看一样 导航具有以下 HTML 结构 ul gt li gt a
  • Android CalendarProvider 事件颜色

    我最困惑的是如何在 Android CalendarProvider 中使用颜色 我可以添加事件 但是当我尝试插入具有特定颜色的事件时 默认日历颜色 浅蓝色 似乎会忽略此首选项 我想我不太确定如何使用颜色 我想知道是否有人可以好心地解释一下
  • 延迟容器启动,直到 pod 中的其他容器启动

    我正在研究一个用例 其中 sidecar 容器在更改主容器的目录权限时连续运行 shell 脚本 我只想在 pod 中的主容器准备就绪后才启动侧容器 我正在查看 Init Containers 我发现当我们具有 pod 间依赖关系时 ini
  • JavaScript 中的 Node js / MongoDB 副本集数组

    警告 我是一名新手程序员 更多的是系统管理员 我们获得了一个使用 MongoDB 的 Node js 应用程序 据我所知 mongo js 文件使用 mongojs 和 monq java 类 它只设置了一个 MongoDB 我正在尝试设置
  • Flask AttributeError:模块“flask.json”没有属性“JSONEncoder”

    我的烧瓶应用程序在升级之前可以正常运行 当忘记重置密码时 我在发送电子邮件时遇到了问题 为了尝试解决这个问题 我最近升级了我的 Flask 应用程序的一些模块 我使用当前版本升级的模块是 电子邮件验证器 2 0 0 post2 烧瓶 2 3
  • 如何在C#中动态创建表

    table border 1 tr td Record 1 td tr tr td 1 td td 2 td td 3 td tr tr td a td td b td td c td tr tr td m td td n td td o
  • 递归 JSON.stringify 实现

    我正在尝试学习 Javascript 中的递归 所以我想我应该重写本机JSON stringify使用递归函数作为对自己的挑战 我几乎让我的代码可以工作 var my stringify function obj value obj Obj
  • 如何清理 WordPress 中的用户密码信息?

    我正在 WordPress 网站上的自定义注册表单中捕获用户名 电子邮件和密码 我正在使用以下方式清理用户名sanitize user and sanitize email 清理电子邮件地址 例如 username sanitize use
  • 如何向图像添加文字?

    在我的项目中 我使用 iText 生成 PDF 文档 假设页面的高度为 500pt 1 个用户单位 1 点 并且我在页面上写入了一些文本 然后是图像 如果内容和图像要求小于 450pt 则文本在图像之前 如果内容和图像超过 450pt 文本
  • 如何在Python 2.7中设置HTTP代理?

    我正在尝试运行一个安装 pip get pip py 的脚本 但由于我的网络位于 HTTP 代理后面 导致连接超时 有什么方法可以在我的 Python 2 7 安装中配置 HTTP 代理 以便能够安装我想要安装的内容吗 注意 我使用的是Wi
  • 在包含 1 亿个字符串的大型文本文件中进行高效的子字符串搜索(无重复字符串)

    我有一个很大的文本文件 1 5 GB 有 1 亿个字符串 没有重复的字符串 所有字符串都在文件中逐行排列 我想在java中制作一个wep应用程序 以便当用户给出关键字 子字符串 时 他可以获得包含该关键字的文件中存在的所有字符串的计数 我已
  • 如何检测 jquery 中的文档何时添加了新元素?

    如何检测 jquery 中的文档何时添加了新元素 解释 我想知道何时将具有 column header 类的元素添加到文档中 因为我计划在这些元素上运行一些 javascript 我怎样才能做到这一点 我使用 jQuery javascri
  • Ruby mysql2 单个查询中的多个语句

    我遇到一个问题 我正在更新数据库中的数百万行 因此我不想单独更新每一行 而是希望将约 1000 条语句的组连接到单个查询中 我已经像这样启用了 MULTI STATEMENTS client Mysql2 Client new host g
  • Angular 5 编译期间未拾取 CSS 类

    我在我的 Angular 5 项目中使用 ag grid 我正在尝试将 css 类添加到单元格中 在查看了有关 ag grid 单元样式的大量文档后 我尝试使用 cellClass 和 cellClassRules 样式在 scss 文件中
  • 如何制作一个古怪的数学计算器? (最好是 C++,但其他也可以。)

    我想知道如何在 C 中做一些较低级别的事情 这将允许我做一些 古怪 的数学运算 具体来说我的两个问题是 1 如何定义编译器能够识别的自己的数学符号在我的代码中 换句话说 我不想解析用户的字符串 而是让编译器将其识别为新的数学运算 ex 3
  • 如何正确设置socket.io端口?获取socket.io.js 404

    根据文档 我有以下设置 客户端 var socket io connect TIP connect with no args does auto discovery 服务器端 var express require express rout
  • jQuery“可见”并不适用于所有浏览器,但适用于 Firefox

    我做了一个非常简单的小提琴here http jsfiddle net saeedneamati sZR2f 并且可以在不同的浏览器中查看 它仅适用于 Firefox 换句话说 似乎 select tag id option visible
  • 同一行有多个定义错误。 (C++)

    我有一个新的复杂问题 编译器抱怨我正在重新定义一个函数 但它说我声明它的第一个地方有重新声明的位置 当我将 cpp 文件包含在另一个文件中时 问题就开始了 为了解决我的问题 我将其导出到 hpp 文件 但为了知道是否有效 这是我的代码 主要