Пытаясь устранить ошибку LNK2019, я сделал небольшой код, чтобы повторить эту ошибку за пределами моего проекта.
Ошибка не появляется в том же месте, но шов будет похожим.
Я использую Visual Studio 2013 и не пытался использовать другую IDE.
моя программа:
main.cpp:
#include "functions.hpp"
int main(int argc, char *argv[]){
core::function1();
return 0;
}
functions.hpp:
#ifndef _functions_hpp
#define _functions_hpp
#include "core.hpp"
namespace core{
void function1();
}
#endif
core.hpp:
#ifndef _core_hpp
#define _core_hpp
#include <string>
namespace core{
//some defines
}
#endif _core_hpp
functions.cpp:
#include "functions.hpp"
#include "Input_Output.hpp"
namespace core{
void functions(){
type_writer writer;
writer.save();
}
}
Input_Output.hpp:
#ifndef _INPUT_OUTPUT_HPP
#define _INPUT_OUTPUT_HPP
namespace core{
class type_writer{
public:
void save();
};
}
#endif
Input_Output.cpp:
#include "Input_Output.hpp"
namespace core{
void type_writer::save(){
}
}
ошибка журнала:
Командная строка компиляции:
C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin \ CL.exe / c / ZI / nologo / W3 / WX- / Od / Oy- / D WIN32 / D _DEBUG / D _CONSOLE / D _LIB / D _UNICODE / D UNICODE / Гм / EHsc / RTC1 / MDd / GS / fp: точный / Zc: wchar_t / Zc: forScope / Fo "Отладка \" /Fd"Debug\vc120.pdb "/ Gd / TP / analysis- / errorReport: подскажите main.cpp
Ссылка:
C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin \ CL.exe / c / ZI / nologo / W3 / WX- / Od / Oy- / D WIN32 / D _DEBUG / D _CONSOLE / D _LIB / D _UNICODE / D UNICODE / Гм / EHsc / RTC1 / MDd / GS / fp: точный / Zc: wchar_t / Zc: forScope / Fo "Отладка \" /Fd"Debug\vc120.pdb "/ Gd / TP / analysis- / errorReport: подскажите main.cpp
ошибка:
1> main.obj: ошибка LNK2019: неразрешенный внешний символ «void __cdecl core :: function1 (void)» (? Function1 @ core @@ YAXXZ), на который есть ссылка в функции _main
1> E: \ Nicolas \ frame_external_error \ Debug \ frame_external_error.exe: фатальная ошибка LNK1120: 1 неразрешенная внешняя сторона
В моем первоначальном проекте эта ошибка произошла от другого внешнего символа (от автора type_writer;), но я думаю, что если я пойму, какова причина ошибки в этом примере, я должен найти способ ее исправить в своем собственном проекте.
Спасибо за чтение!