C++
सामान्य संकलन / लिंकर त्रुटियाँ (GCC)
खोज…
त्रुटि: इस दायरे में '***' घोषित नहीं किया गया था
यह त्रुटि तब होती है जब किसी अज्ञात वस्तु का उपयोग किया जाता है।
चर
संकलन नहीं:
#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;
}
ठीक कर:
#include <iostream>
int main(int argc, char *argv[])
{
{
int i = 2;
std::cout << i << std::endl;
}
return 0;
}
कार्य
अधिकांश समय यह त्रुटि तब होती है जब आवश्यक हेडर शामिल नहीं होता है (जैसे कि
std::cout
without#include <iostream>
) का उपयोग करना
संकलन नहीं:
#include <iostream>
int main(int argc, char *argv[])
{
doCompile();
return 0;
}
void doCompile()
{
std::cout << "No!" << std::endl;
}
ठीक कर:
#include <iostream>
void doCompile(); // forward declare the function
int main(int argc, char *argv[])
{
doCompile();
return 0;
}
void doCompile()
{
std::cout << "No!" << std::endl;
}
या:
#include <iostream>
void doCompile() // define the function before using it
{
std::cout << "No!" << std::endl;
}
int main(int argc, char *argv[])
{
doCompile();
return 0;
}
नोट: कंपाइलर कोड को ऊपर से नीचे (सरलीकरण) की व्याख्या करता है। उपयोग से पहले सब कुछ कम से कम घोषित (या परिभाषित) होना चाहिए।
`*** 'के लिए अपरिभाषित संदर्भ
यह लिंकर त्रुटि तब होती है, यदि लिंकर को एक प्रयुक्त प्रतीक नहीं मिल सकता है। अधिकांश समय, यह तब होता है जब एक प्रयुक्त पुस्तकालय के खिलाफ लिंक नहीं किया जाता है।
qmake:
LIBS += nameOfLib
cmake:
TARGET_LINK_LIBRARIES(target nameOfLib)
g ++ कॉल:
g++ -o main main.cpp -Llibrary/dir -lnameOfLib
कोई भी उपयोग की गई सभी .cpp
फ़ाइलों को संकलित और लिंक करना भूल सकता है (functionsModule.cpp आवश्यक फ़ंक्शन को परिभाषित करता है):
g++ -o binName main.o functionsModule.o
घातक त्रुटि: ***: ऐसी कोई फ़ाइल या निर्देशिका नहीं
कंपाइलर को कोई फ़ाइल नहीं मिल सकती (स्रोत फ़ाइल #include "someFile.hpp"
) का उपयोग करती है।
qmake:
INCLUDEPATH += dir/Of/File
cmake:
include_directories(dir/Of/File)
g ++ कॉल:
g++ -o main main.cpp -Idir/Of/File