C++ 对象和"undefined reference to"不同意重复
c++ object and "undefined reference to" not agree with duplicated
大家好:)这是一个被遗忘的带有"extern"的双声明。
问题
我认为这是不同文件之间的对象问题,或者的"&"或"*"问题
我有错误行:
-lws2_32/tmp/ccBWAJ1F.o: dans la fonction « Z2iav »:/home/myfolder/ia.hpp:217: référence indéfinie vers « union_range »collect2: erreur: ld a retourné 1 code d'état d'exécution
(未定义对union\urange的引用,执行1个代码状态)
我有95%的把握该错误是由于我使用了CarSet对象(union\urange)在ia.hpp中,valeur_main_board_range(moment()+1,union\urange)
我有一个非常接近的函数valeur_main_board(moment()+1),没有任何错误。
ia.hpp
错误在这里:int valeur_main=valeur_main_board_range(moment()+1,union\urange)
在我的文件ia.hpp 中
#include "variable_calcule.hpp"
extern std::set<CardSet> union_range, resultat, range_joueur;
// the error was the "extern" to remove
void ia()
{
std::set<CardSet> union_range, resultat, range_joueur;
for (int j=0; j<10; j++)
{
range_joueur=range_action(action[0][j][1],j);
set_union(union_range.begin(),union_range.end(),range_joueur.begin(),range_joueur.end(),std::inserter(resultat,resultat.begin()));
union_range=resultat;
}
int valeur_main = valeur_main_board_range(moment()+1,union_range); // BUG HERE
}
valeur_main_board_range()代码(使用union\urange)
union\range include from#include"variable_calcule.hpp"包含#include"analyse_action.hpp"
#include "CardSet.h"
using namespace pokerstove;
using namespace std;
int valeur_main_board_range(int nb_carte, std::set<CardSet> &range) {
int dessus=0;
[...]
return dessus;
}
如果我找到了答案,我将为未来的读者删除不必要的代码。目前我更喜欢放太多。。。但如果你想我删除或添加代码,只需问:)
感谢您的阅读:)
在给出的代码片段中,我只在函数ia内部发现了union\urange,其中该名称定义良好。
void ia()
{
analyse_action();
std::set<CardSet> union_range, resultat, range_joueur;
这里union\urange是类型为std::set<CardSet>.
的局部变量所以你展示了不相关的代码。
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- decltype(1, t) 应该是 l 值引用吗?(编译器不同意)
- GCC/CLang不同意模板模板参数的部分特化
- l值引用对象上的Constexpr成员函数:Clang和gcc不同意
- 除了说明符神秘地破坏编译(Clang,GCC不同意)
- [expr.unary.op]/9 似乎暗示"运算符!()' 不能应用于下面的类型 A.但编译器不同意这一点
- C++函数到指针的隐式转换:哪个编译器是正确的?Clang和GCC不同意
- Clang和Gcc不同意实例化后的显式专业化
- clang vs g 在类模板上不同意参数和模板模板参数重新分支
- 从支撑的std::string构造std::string_view,clang和gcc不同意-Wconversion
- constexpr 表达式和变量生存期,G++ 和 Clang 不同意的一个例子
- 初学者C 教科书不同意我在编译数学方程式时获得的实际输出
- 内部阶级、皮条客和一个朋友阶级——不同意的编译器
- C++ 对象和"undefined reference to"不同意重复
- 按值捕获异常 - gcc 和 clang 不同意
- 使用decltype定义静态成员(Intellisense不同意)
- 当函数模板专门化到不同的命名空间时,GCC和clang不同意
- 当显式模板实例化定义在显式声明之前时,GCC和clang不同意
- std::make_shared是否执行值初始化(GCC和clang不同意)
- Perl: IPC::可共享和SWIG C++对象不同意