问题标签 [redefinition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - *_get_type(void) gtk+ requried 方法的重新定义
正如标题已经说过的那样,我收到一个似乎无法修复的编译错误:
错误指向此行的位置(此代码片段的第一个):
并且注释线指向类型设置
两个片段都位于.c 文件中(注释行位于错误行上方)。
帮助表示赞赏..我很困惑。为什么 gtk+ 宏要重新定义一个函数,我必须为自己的基于 gobject 的类初始化器和终结器(如果它们存在)(在这种情况下基于 GtkNotebook)设置。
c - “将‘foo’重新定义为不同的符号”
我正在尝试重构和引入一些旧代码,我遇到了这样的事情:
尝试编译它时,出现以下错误:
有谁知道这是什么原因造成的?我很长时间没有接触过代码,但我当然不记得任何与此相关的错误。它是代码库中一些最核心的代码,一切都取决于它;我不明白我怎么可能错过这样一个明显的错误,如果它确实是一个错误的话。由于原来foo
是一个“结构标签”(struct
关键字后只有一个理智的引用),它怎么会与我的新foo
typedef'd 类型冲突?
编辑1:这是整个实际文件,也许我遗漏了一些东西,但看起来很简单。它会转储大量与上述相同的错误,每种类型都有一个错误:
(另外,忽略e()
宏;在这种情况下它是一个 noop。)
c - 如何设置 Eclipse gcc 编译器以忽略特定错误或从错误变为警告
我需要构建一个由许多 C 源文件和头文件组成的项目。该项目在带有警告的 xcode 中编译(这很好),但是当我尝试在 Windows XP 上的 Eclipse 中使用 GNU gcc C 编译器编译它时,我得到了许多“重新声明”和“嵌套重新定义”错误。这些错误都引用了几个不同头文件中枚举数的 typedef。
这些头文件中的每一个在整个文件周围都有适当的#ifndef/#define/#endif 标签,但它们 typedef 相同的枚举数(想想将 typedef 复制/粘贴到多个头文件中),这样一个头文件将 #include 每个其他头文件其中具有相同名称的相同枚举数 typedef。
我被告知在 xcode 中编译时会出现警告,并且不允许我修改现有代码。
当它在 xcode 中编译时出现警告时,我试图找到一种方法让 Eclipse 忽略这些错误或将它们更改为要编译的警告,但没有成功。编译器使用第一个还是最后一个定义/声明并不重要。它们是相同的重新定义/重新声明。
有没有办法做到这一点?
编辑:使用错误标志 -Wall 进行编译
assemblies - 忽略引用程序集中的特定符号
我有两个使用同一批次代码的托管程序集。当引用一个到另一个时,编译器会抱怨多次重新定义,正如预期的那样。在项目编译期间是否可以忽略引用程序集中存在的常见符号?或者也许是其他一些方法/解决方法来允许这样的设置?
function - PowerShell - 如何在函数中调用与函数同名的 cmdlet 名称时调用 cmdlet?
所以我有一个名为 update-name 的 cmdlet,我无权更改。
我创建了一个名为 update-name 的函数(与 cmdlet 同名)。如何从具有相同名称的函数中调用 cmdlet?
我已经尝试了一些东西,但它们似乎都不起作用。
当它只是功能时,有一种方法可以做到:
不幸的是,如果它是 CmdLet,这将不起作用。
c++ - 如果重新定义数据成员,则实现类
如果我们重新定义数据成员,类的实现会发生什么?例如,假设我们有:
bar 对象的表示是否包含一个或两个 b 字段?如果有两个,它们都是可访问的,还是只有一个?在什么情况下?
c - 变量重新定义,嵌入式 c
我正在开发一个嵌入式 c 项目,并且遇到了全局变量重新定义的问题。
我已将函数声明和定义拆分为几个 .h 和 .c 文件。其中许多函数需要访问 global_vars.h 中定义的全局变量。因此,在头文件的开头,#ifndef,#define 部分,“global_vars.h”。如果我不这样做,就像您想象的那样,我会收到一堆未定义的变量错误。
但是,即使 global_vars.h 具有 #ifndef _GLOBAL_VARS_H_ #define...#endif,我也会收到所有全局变量的重新定义错误。我的猜测是,当链接器尝试链接各种目标文件时,由于所有“blah_blah.h”文件中的#include“global_vars.h”,它会看到重新定义。不过,我的理解是,#ifndef... 会处理这个问题。
有什么我忽略的吗?
提前致谢
gcc - 为什么使用 GCC 4.3 而不是 GCC 4.6 出现“重新定义 typedef”错误?
我一直在使用 GCC 4.6 开发我的应用程序进行编译,但用户报告了“重新定义 typedef”错误。在我错误地告诉用户使用 Git 获取最新源的一些混乱之后,我仔细查看并发现类似于以下内容:
对于较旧的 GCC 版本,这很容易修复,但为什么这不再是错误?还是需要报告?
c++ - 定义麻烦。C++
这是简化的代码!我有 C++ 文件(在哪里实现)和头文件(在哪里是类定义)!
我有一个文件:Foo.cpp包含main.h。我有使用函数 Foo.cpp并且还包括main.h的文件Bar.cpp。它使用 struct 访问 Foo 对象并调用它的函数。但是main.h中定义的结构?我试图这样解决它:
但这会导致:
我的代码有什么问题?它也不是真正的代码。我简化了我的真实项目并削减了所有不需要的东西。Foo.cpp 和 Bar.cpp 当然有它们的头文件,其中 Foo 和 Bar 类定义在.cpp文件中,它只是它们的实现。也killAllHumans()
从位于的 main.cpp 调用main()
。
*已编辑*
我知道这#include
适用于标题,但我写道它是“伪代码”。我在我的 readl 项目中使用头文件和 cpp 文件,并且只包含头文件并且#pragma once
在我的头文件中。在这个问题中,我只简化我的代码!请在回答之前阅读所有问题!
* EDITED2 * 现在尝试编译它。有用。奇怪的。
谢谢。
c++ - 如果重新定义内联函数怎么办?
我花了几天时间解决一个奇怪的问题,最后发现inline
项目中有两个相同签名的函数,它们导致了问题。为了简化情况,这里举个例子:两个cpp文件:
a.cpp
和 b.cpp
请注意,inline
函数echo
具有相同的签名但不同的实现。编译运行
或者像这样
它打印0 0
。(我为此使用了 g++ 4.6.1,并使用 clang++ 2.9 进行了测试,结果相同)
如果打开优化就不会发生这种情况,比如
就是0 1
这个时候。
我的问题是,无论结果或编译如何执行,都没有关于我多次定义inline
函数的错误甚至警告。在这种情况下,编译器和链接器到底会发生什么?
编辑:
查看目标文件中的符号
两个文件都有记录echo()
。所以我认为问题发生在链接时。是否可以说链接器随机选择一种实现并丢弃所有其他实现?