Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;对象和;未定义的引用;不同意复制_C++_Object_Cygwin_Undefined Reference - Fatal编程技术网

C++ c++;对象和;未定义的引用;不同意复制

C++ c++;对象和;未定义的引用;不同意复制,c++,object,cygwin,undefined-reference,C++,Object,Cygwin,Undefined Reference,大家好:)这是一个被遗忘的带有“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 (未定义对u

大家好:)这是一个被遗忘的带有“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_范围的引用,执行1个代码状态)

我95%确信该错误是由于我使用了CarSet对象(union_范围) 在瓦卢尔主配电盘范围内的ia.hpp中(力矩()+1,联合范围)

我有一个非常接近的函数valeur_主板(矩()+1),没有任何错误

ia.hpp 错误在这里: int valeur_main=valeur_main_板_范围(力矩()+1,联合_范围)

在我的文件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
}
#包括“variable_calcuble.hpp”
外部标准::设置联合范围、结果、范围;
//错误是要删除的“外部程序”
void ia()
{
标准::设置联合范围、结果、范围;

对于(int j=0;j,我在给出的代码片段中发现了union_范围,仅在函数ia中定义了这个名称

void ia() 
{
analyse_action();
std::set<CardSet> union_range, resultat, range_joueur;
void ia()
{
分析_动作();
标准::设置联合范围、结果、范围;
这里union\U range是一个类型为
std::set.

太长了,读不下去了。代码太多,不能用在一个典型的未定义的引用错误上。TL;DR;钉子是你的问题的一个要点!我已经按照你的建议编辑了。我在谷歌上搜索TL;Dr;但是不理解。它不是复制品(它是一个被遗忘的“外星人”,我从3天以来就没见过……)但是你的链接仍然很有趣…谢谢大家谢谢你我找到了错误:我在错误的地方搜索:错误在声明上我忘记删除“extern”从过去和复制外部std::set union\u range,resultat,range\u jouer;。您的回答帮助我使用控件+F在正确的位置进行搜索。非常感谢!
void ia() 
{
analyse_action();
std::set<CardSet> union_range, resultat, range_joueur;