Buscar..


error: '***' no fue declarado en este alcance

Este error ocurre si se utiliza un objeto desconocido.

Variables

No compilar

#include <iostream>

int main(int argc, char *argv[])
{
    {
        int i = 2;
    }

    std::cout << i << std::endl; // i is not in the scope of the main function

    return 0;
}

Fijar:

#include <iostream>

int main(int argc, char *argv[])
{
    {
        int i = 2;
        std::cout << i << std::endl;
    }

    return 0;
}

Funciones

La mayoría de las veces, este error se produce si no se incluye el encabezado necesario (por ejemplo, utilizando std::cout sin #include <iostream> )

No compilar

#include <iostream>

int main(int argc, char *argv[])
{
    doCompile();

    return 0;
}

void doCompile()
{
    std::cout << "No!" << std::endl;
}

Fijar:

#include <iostream>

void doCompile(); // forward declare the function

int main(int argc, char *argv[])
{
    doCompile();

    return 0;
}

void doCompile()
{
    std::cout << "No!" << std::endl;
}

O:

#include <iostream>

void doCompile() // define the function before using it
{
    std::cout << "No!" << std::endl;
}

int main(int argc, char *argv[])
{
    doCompile();

    return 0;
}

Nota: El compilador interpreta el código de arriba a abajo (simplificación). Todo debe ser al menos declarado (o definido) antes de su uso.

referencia indefinida a `*** '

Este error del enlazador ocurre, si el enlazador no puede encontrar un símbolo usado. La mayoría de las veces, esto sucede si una biblioteca usada no está vinculada.

qmake:

LIBS += nameOfLib

cmake:

TARGET_LINK_LIBRARIES(target nameOfLib)

llamada g ++:

g++ -o main main.cpp -Llibrary/dir -lnameOfLib

También se podría olvidar compilar y vincular todos los archivos .cpp utilizados (functionsModule.cpp define la función necesaria):

g++  -o binName main.o functionsModule.o

error fatal: ***: No existe tal archivo o directorio

El compilador no puede encontrar un archivo (un archivo de origen usa #include "someFile.hpp" ).

qmake:

INCLUDEPATH += dir/Of/File

cmake:

include_directories(dir/Of/File)

llamada g ++:

g++ -o main main.cpp -Idir/Of/File


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow