multiple-definition-error相关内容

用现代的GCC编译抛出错误(多重定义)的旧C代码(在LINUX上)?

我为什么要这样? 我想使用C package,根据ChangeLog,它最初构建于2007年,最后一次更新是在2016年。我猜想它会被干净地编译回来。 遗憾的是,情况不再是这样了。 错误 运行./configure和make时,我收到Multiply defined错误: gcc -g -O2 -o laplaafit laplaafit.o multimin. ..

将函数添加到先前的链接文件后,多定义链接器错误

所以我的程序运行正常.编译,链接,运行工程.然后,我决定向其中一个文件添加一个简单函数,如下所示: #ifndef UTILITY_HPP#定义UTILITY_HPP/* #includes here.我已经检查了,没有循环包含.*/命名空间yarl{命名空间实用程序{(几个函数声明和定义)bool isVowel(const char c){if(c =='a'|| c =='e'|| c ..
发布时间:2021-05-29 21:30:02 C/C++开发

gcc __attribute __((selectany))是否可以替代Linux?

我想知道Linux中是否有 __ attribute __((selectany))的替代方法? 我想定义这样的东西: char * a [] = {"qwe","zxc"}; 放在头文件中,并将其包含在许多将链接在一起的.c文件中.因此,链接器将看到一个以上的"a"定义,因此将不会链接.我读过这个属性(selectany),它只使用“a"的第一个定义,不幸的是它只适用于ms win ..
发布时间:2021-05-29 21:26:47 服务器开发

不同库和链接顺序中的相同符号

我有2个库:test.1和test.2.这两个库都包含一个单独的全局 extern"C" void f();函数,具有不同的实现(对于测试来说只是一个cout). 我做了以下测试: 测试1 动态链接: 如果我在可执行文件的生成文件中添加libtest.1.so然后是libtest.2.so,然后在main中调用f();,则会调用libtest.1.so->f(). 如果我更改了ma ..

extern变量导致多个定义错误

我一直在尝试使用extern来使用先前定义的变量. 我以前没有使用过extern,现在我只需要使用它就可以一次定义变量并在多个文件中使用它们 我为这个问题写了最小化的代码版本.我有四个文件 lib.h #ifndef LIB_H #define LIB_H #include namespace lib { extern bool initia ..
发布时间:2020-07-01 02:42:48 C/C++开发

静态数组类变量“多个定义"; C ++

我正在编写一些代码,其中我需要具有一个静态int数组的类变量.我了解我可以使用头文件A.h中的类似方法来做到这一点: #ifndef A_H_ #define A_H_ class A { public: static const int a[]; }; const int A::a[] = {1,2}; #endif 如果我仅在另一个文件中包含此标头,则此方法就很好,例如以下 ..

“多个定义”,“首先在此定义”和“多个定义”。错误

我有3个项目:服务器,客户端和 Commons 。制作标题& Commons 中的源对不会导致任何问题,我可以从服务器和客户端中自由访问这些函数。 但是,出于某种原因,在 Server 或 Client 项目中创建其他源/头文件总是会导致多个定义(...)和首先在这里定义错误。 示例: commands.h (在客户端项目的根目录中) #ifndef COMMANDS_H ..
发布时间:2018-08-02 10:10:38 Java开发

多个定义和仅标头库

我有一个带有几个c和h文件的C程序。我决定将程序的一部分设置为“仅限标题”,因此我将代码从c移到了h。现在我得到了多重定义问题,我不明白为什么。例如: main.c包括utils.h vector.c包含utils.h 我将utils.c中的所有内容移动到utils.h(当然还从项目中删除了utils.c)。 utils.h以 开头 #ifndef UTILS_ ..
发布时间:2018-08-02 10:10:07 其他开发

链接时多个std :: functions的多个定义

我正在尝试将一些外部代码集成到我的应用程序中。我的代码是纯C,但新的代码是C ++,所以我简单地将我的C文件重命名为.CC,并用g ++编译整个事情。 但我得到一个链接错误crapton: CMakeFiles / svrt.dir / svrtH_generator.cc.o: (unsigned long,void *)': svrtH_generator.cc:(.text+ ..
发布时间:2016-11-01 21:10:00 C/C++开发

多重c ++文件导致“多重定义”错误?

我第一次在一个项目中使用多个C ++文件。两者都需要包括一个protected(#ifndef)头文件。但是,当我这样做,我得到一个多重定义错误。 我有两个.cpp文件直接调用头,一个间接(另一个include包括它),然后两个其他头文件,包括它。 那么,我需要做什么来摆脱错误呢? 错误: obj\Debug\main.o ||在函数 Z14sortLibQtyTest4B ..
发布时间:2016-10-30 16:54:42 C/C++开发