Sök…


fel: "***" förklarades inte inom detta område

Det här felet händer om ett okänt objekt används.

variabler

Inte sammanställer:

#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;
}

Fixera:

#include <iostream>

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

    return 0;
}

funktioner

Oftast uppstår detta fel om den nödvändiga rubriken inte ingår (t.ex. med std::cout utan #include <iostream> )

Inte sammanställer:

#include <iostream>

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

    return 0;
}

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

Fixera:

#include <iostream>

void doCompile(); // forward declare the function

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

    return 0;
}

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

Eller:

#include <iostream>

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

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

    return 0;
}

Obs: Compilern tolkar koden från topp till botten (förenkling). Allt måste åtminstone deklareras (eller definieras) före användning.

odefinierad hänvisning till `*** '

Det här länkfelet inträffar om länken inte kan hitta en begagnad symbol. Det händer oftast om ett begagnat bibliotek inte är länkat mot.

qmake:

LIBS += nameOfLib

cmake:

TARGET_LINK_LIBRARIES(target nameOfLib)

g ++ samtal:

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

Man kan också glömma att sammanställa och länka alla använda .cpp filer ( .cpp definierar den nödvändiga funktionen):

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

dödligt fel: ***: Ingen sådan fil eller katalog

Kompilatorn kan inte hitta en fil (en källfil använder #include "someFile.hpp" ).

qmake:

INCLUDEPATH += dir/Of/File

cmake:

include_directories(dir/Of/File)

g ++ samtal:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow