C++ C++;:对函数的未定义引用

C++ C++;:对函数的未定义引用,c++,g++,geany,C++,G++,Geany,我正在使用头文件,无法识别我的函数。我得到的确切错误是: main.cpp:(text+0x67):对“resetDeck()”的未定义引用 main.cpp:(text+0x6c):未定义对“deal()的引用” main.cpp:(text+0x71):未定义对“displayCards()的引用” 函数在main.cpp的第18、19和20行中调用。 这是代码(是的,我知道我把manager拼错了): cardManger.h #ifndef CARDMANGER_H_INCLUDED #

我正在使用头文件,无法识别我的函数。我得到的确切错误是:

main.cpp:(text+0x67):对“resetDeck()”的未定义引用

main.cpp:(text+0x6c):未定义对“deal()的引用”

main.cpp:(text+0x71):未定义对“displayCards()的引用”

函数在main.cpp的第18、19和20行中调用。 这是代码(是的,我知道我把manager拼错了):

cardManger.h

#ifndef CARDMANGER_H_INCLUDED
#define CARDMANGER_H_INCLUDED
    void resetDeck(void);
    void deal(void);
    void displayCards(void);
#endif
cardManger.cpp

#include <iostream>
#include <cstdlib>
#include <vector>
#include "cardManger.h"
using namespace std;
int playerOneNumberOfCards = 7;
int playerTwoNumberOfCards = 7;
int playerThreeNumberOfCards = 7;
int playerFourNumberOfCards = 7;
vector<int> playerOnesHand(7);
vector<int> playerTwosHand(7);
vector<int> playerThreesHand(7);
vector<int> playerFoursHand(7);
int playerTwosCardMem[3];
int playerThreeCardMem[3];
int playerFoursCardMem[3];
int playerTwosUserMem[3];
int playerThreeUserMem[3];
int playerFoursUserMem[3];
int playerTwoMemCount;
int playerThreeMemCount;
int playerFourMemCount;
int deck[52];
void resetDeck(void){
    deck[0] = 1;
    deck[1] = 1;
    deck[2] = 1;
    deck[3] = 1;
    deck[4] = 2;
    deck[5] = 2;
    deck[6] = 2;
    deck[7] = 2;
    deck[8] = 3;
    deck[9] = 3;
    deck[10] = 3;
    deck[11] = 3;
    deck[12] = 4;
    deck[13] = 4;
    deck[14] = 4;
    deck[15] = 4;
    deck[16] = 5;
    deck[17] = 5;
    deck[18] = 5;
    deck[19] = 5;
    deck[20] = 6;
    deck[21] = 6;
    deck[22] = 6;
    deck[23] = 6;
    deck[25] = 7;
    deck[26] = 7;
    deck[27] = 7;
    deck[28] = 8;
    deck[29] = 8;
    deck[30] = 8;
    deck[31] = 8;
    deck[32] = 9;
    deck[33] = 9;
    deck[34] = 9;
    deck[35] = 9;
    deck[36] = 10;
    deck[37] = 10;
    deck[38] = 10;
    deck[39] = 10;
    deck[40] = 11;
    deck[41] = 11;
    deck[42] = 11;
    deck[43] = 11;
    deck[44] = 12;
    deck[45] = 12;
    deck[46] = 12;
    deck[47] = 12;
    deck[48] = 13;
    deck[49] = 13;
    deck[50] = 13;
    deck[51] = 13;
}
void deal (void){
    srand(time(0));
    int r;
    int s = 0;
    for(int i = 8; i>0; i--){
        if(i == 8){
            playerOnesHand[7] = 0;
        }else{
            do{
                s = (rand()%51)+1;
                r = deck[s];
            }while(r == 0); 
            playerOnesHand[--i] = r;
            i++;
            deck[s] = 0;
        }

    }
    s = 0;
    r = 0;

    for(int i = 8; i>0; i--){
        if(i == 8){
            playerTwosHand[7] = 0;
        }else{
            do{
                s = (rand()%51)+1;
                r = deck[s];
            }while(r == 0); 
            playerTwosHand[--i] = r;
            i++;
            deck[s] = 0;
        }

    }
    s = 0;
    r = 0;
    for(int i = 8; i>0; i--){
        if(i == 8){
            playerThreesHand[7] = 0;
        }else{
            do{
                s = (rand()%51)+1;
                r = deck[s];
            }while(r == 0); 
            playerThreesHand[--i] = r;
            i++;
            deck[s] = 0;
        }

    }
    s = 0;
    r = 0;
    for(int i = 8; i>0; i--){
        if(i == 8){
            playerFoursHand[7] = 0;
        }else{
            do{
                s = (rand()%51)+1;
                r = deck[s];
            }while(r == 0); 
            playerFoursHand[--i] = r;
            i++;
            deck[s] = 0;
        }

    }
}
void displayCards(void){
    for(int i = playerOneNumberOfCards; i > 0; i--){
        cout << playerOnesHand[i];
    }
}
#include <iostream>
#include "Ai.h"
#include "cardManger.h"
using namespace std;
int numberOfPlayers;
bool gameIsOn;
string question;
/* Allocates memory for players*/

int main(void){
    std::cout << "Welcome to Go Fish. Do you wish to play? If so enter Y. If not enter N. \n";
    std::cin >> question;
    if((question == "N") || (question == "n")){
        return 0;
    }
    gameIsOn = true;
    do{
        resetDeck();
        deal();
        displayCards();
        gameIsOn = false;
    }while(gameIsOn);
    return 0;
}
#包括
#包括
#包括
#包括“cardManger.h”
使用名称空间std;
int PlayerNumberOfCards=7;
int playerTwonNumber of Cards=7;
int playerThreeNumberOfCards=7;
int playerFourNumberOfCards=7;
载体蛋白(7);
矢量播放机woshand(7);
向量机三重(7);
矢量playerFoursHand(7);
int playertwoscardem[3];
int playerThreeCardMem[3];
int playerFourscardem[3];
int playertwosuserem[3];
int playerThreeUserMem[3];
int playerFoursUserMem[3];
int playertwomencount;
int player三重计数;
int playerFourMemCount;
内部甲板[52];
空甲板(空甲板){
甲板[0]=1;
甲板[1]=1;
甲板[2]=1;
甲板[3]=1;
甲板[4]=2;
甲板[5]=2;
甲板[6]=2;
甲板[7]=2;
甲板[8]=3;
甲板[9]=3;
甲板[10]=3;
甲板[11]=3;
甲板[12]=4;
甲板[13]=4;
甲板[14]=4;
甲板[15]=4;
甲板[16]=5;
甲板[17]=5;
甲板[18]=5;
甲板[19]=5;
甲板[20]=6;
甲板[21]=6;
甲板[22]=6;
甲板[23]=6;
甲板[25]=7;
甲板[26]=7;
甲板[27]=7;
甲板[28]=8;
甲板[29]=8;
甲板[30]=8;
甲板[31]=8;
甲板[32]=9;
甲板[33]=9;
甲板[34]=9;
甲板[35]=9;
甲板[36]=10;
甲板[37]=10;
甲板[38]=10;
甲板[39]=10;
甲板[40]=11;
甲板[41]=11;
甲板[42]=11;
甲板[43]=11;
甲板[44]=12;
甲板[45]=12;
甲板[46]=12;
甲板[47]=12;
甲板[48]=13;
甲板[49]=13;
甲板[50]=13;
甲板[51]=13;
}
无效交易(无效){
srand(时间(0));
INTR;
int s=0;
对于(int i=8;i>0;i--){
如果(i==8){
PlayerOnShand[7]=0;
}否则{
做{
s=(rand()%51)+1;
r=甲板[s];
}而(r==0);
playerOnesHand[--i]=r;
i++;
甲板=0;
}
}
s=0;
r=0;
对于(int i=8;i>0;i--){
如果(i==8){
playerTwosHand[7]=0;
}否则{
做{
s=(rand()%51)+1;
r=甲板[s];
}而(r==0);
playerTwosHand[--i]=r;
i++;
甲板=0;
}
}
s=0;
r=0;
对于(int i=8;i>0;i--){
如果(i==8){
playerThreesHand[7]=0;
}否则{
做{
s=(rand()%51)+1;
r=甲板[s];
}而(r==0);
playerThreesHand[--i]=r;
i++;
甲板=0;
}
}
s=0;
r=0;
对于(int i=8;i>0;i--){
如果(i==8){
playerFoursHand[7]=0;
}否则{
做{
s=(rand()%51)+1;
r=甲板[s];
}而(r==0);
playerFoursHand[--i]=r;
i++;
甲板=0;
}
}
}
作废显示卡(作废){
对于(int i=播放人数;i>0;i--){
回避问题;
如果((问题==“N”)| |(问题==“N”)){
返回0;
}
gameIsOn=true;
做{
重置甲板();
交易();
显示卡();
gameIsOn=false;
}while(gameIsOn);
返回0;
}

谢谢。

我发现了问题所在。我没有将我的文件与makefile链接。感谢您的所有评论。

您是否正在链接您的
cardManger.cpp
?它是您项目的一部分吗?相关:。看起来您遇到了相同的问题。您知道如何在Geany中链接文件吗?