LNK2019错误-未找到外部符号.尝试了几种解决方案

LNK2019 error- external simbol not found. Tried several solutions

本文关键字:解决方案 几种 错误 符号 外部 LNK2019      更新时间:2023-10-16

我已经为这个问题搜索了很多,但没有一个结果帮助我解决这个问题。问题是,我正在使用M visual studio,我不确定我是否错过了什么。

在编译我的代码时,使用一些.h文件进行调制,我得到LNK2019错误。这是我已经写好的代码:

ImageExtractor.cpp

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <Windows.h>
#include <string>  
#include <sstream>
#include "../../Headers/FunctionDefinitions.h"
#include "../../Headers/XRIT2PICHandler.h"
#include "../../Headers/DirectoryFunctions.h"
using namespace std;
int main()
{
    XRIT2PICHANDLER X2PHandler1;
    XRIT2PICHANDLER X2PHandler2("Hola");
    XRIT2PICHANDLER X2PHandler3("C:\tools\xrit");
    XRIT2PICHANDLER X2PHandler4("C:\tools");
    cout<<X2PHandler1.DirStatus<<endl;
    cout<<X2PHandler2.DirStatus<<endl;
    cout<<X2PHandler3.DirStatus<<endl;
    cout<<X2PHandler4.DirStatus<<endl;
    return 0;
}

和前面提到的。h文件:

FunctionDefinitions.h

int CheckFileDirectory(const char*,const char*);

DirectoryFunctions.h

    int CheckFileDirectory(const char* FilePath, const char* FileName)
{   
    DIR* pDirectory;
    struct dirent * Entry;
    pDirectory = opendir(FilePath);
    while (pDirectory) {
            errno = 0;
            if ((Entry=readdir(pDirectory)) != NULL) 
            {
                if (strcmp(Entry->d_name, FileName) == 0)
                {
                    closedir(pDirectory);
                    return FOUND;
                }
            } 
            else 
            {
                if (errno == 0) 
                {
                    closedir(pDirectory);
                    return NOT_FOUND;
                }
                closedir(pDirectory);
                return READ_ERROR;
            }
        }
        return OPEN_ERROR;
}

XRIT2PICHandler.h

#include <dirent.h>
#include <errno.h>

const char* DEFAULTPATH="C:\Tools\xrit";
const char* DEFAULTCOMMAND="\xrit2pic_cmd -nogui";
const char* PROGRAMNAME="xrit2pic_cmd.exe";
const int OPEN_ERROR=-10;
const int NOT_FOUND=-11;
const int READ_ERROR=-12;
const int FOUND=10;

class   XRIT2PICHANDLER
{
    public:
        //Atributos
        std::string XRIT2PICPath;
        std::string Command;
        //DIR * pDirectory;
        //struct dirent *Entry;
        int DirStatus;
        //Constructores
        //Por defecto se usa la instalación en C:\Tools\xrit
        XRIT2PICHANDLER();
        //Constructor parametrizado
        XRIT2PICHANDLER(const char*);
        //Destructor
        ~XRIT2PICHANDLER();
        //Métodos

};
//Implementacion de los constructores
//Por defecto
XRIT2PICHANDLER::XRIT2PICHANDLER()
{   
    DirStatus=CheckFileDirectory(DEFAULTPATH,PROGRAMNAME);
    if(DirStatus==FOUND)
    {
        XRIT2PICPath=std::string(DEFAULTPATH);
        XRIT2PICPath=std::string(DEFAULTCOMMAND);
    }
}
//constructor parametrizado
XRIT2PICHANDLER::XRIT2PICHANDLER(const char* Path)
{
    DirStatus=CheckFileDirectory(Path,PROGRAMNAME);
    if(DirStatus==FOUND)
    {
        XRIT2PICPath=std::string(DEFAULTPATH);
        XRIT2PICPath=std::string(DEFAULTCOMMAND);
    }
}

只是提一下,我简化了程序,但错误一直出现。我已经做了几个类似的结构,所以我可能遗漏了一些东西,但我确实搜索了很多。如果有人向我指出这个问题,我会很高兴,我已经经历了很多。

Error code:
Compilación iniciada a las 20/10/2015 13:39:33.
1>InitializeBuildStatus:
1>  Aplicando tarea Touch a "DebugImageExtractor.unsuccessfulbuild".
1>ClCompile:
1>  ImageExtractor.cpp
1>ManifestResourceCompile:
1>  Todas las salidas están actualizadas.
1>ImageExtractor.obj : error LNK2019: símbolo externo "public: __thiscall XRIT2PICHANDLER::~XRIT2PICHANDLER(void)" (??1XRIT2PICHANDLER@@QAE@XZ) sin resolver al que se hace referencia en la función _main
1>C:UsersseselGoogle DrivePFC TelecomunicacionesC++ImageExtractorDebugImageExtractor.exe : fatal error LNK1120: 1 externos sin resolver
1>
1>ERROR al compilar.
1>
1>Tiempo transcurrido 00:00:00.66
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

顺便说一下,我确保。h文件在正确的文件夹中,很抱歉用西班牙语注释。

您可能需要实现析构函数。尝试用~XRIT2PICHANDLER() {};代替~XRIT2PICHANDLER();