如何解决错误LNK2019:未解析的外部符号
How to solve error LNK2019: unresolved external symbol
这么小的程序让我发疯。我总是收到以下错误消息:
Error 1 error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall ErstesPraktikum::createNameString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?createNameString@ErstesPraktikum@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@00H@Z) referenced in function _main Praktikum_gra.obj GRA
Error 2 fatal error LNK1120: 1 unresolved externals C:UsersxxxDocumentsVisual Studio 2008ProjectsGRADebugGRA.exe GRA
这是我的程序,它包含类ErstesPraktikum和Praktikum_gra以及相应的头文件。
我只想使用 Praktikum_gra 类来调用 ErstesPraktikum 类的方法。我花了几个小时来解决这个错误,但没有成功。这是编程错误还是配置问题?我最后的希望是你们中的某个人可以给我一个提示......
注意:字符串只是 openCV 的 std::string 的包装器。
ErstesPraktikum.h
#include <opencv2corecore.hpp>
using namespace std;
using namespace cv;
class ErstesPraktikum
{
private:
String convertInteger(int);
public:
String createNameString(String, String, String, int);
void readImage(String, Mat *);
void extractObjects(int, Mat *, Mat *);
};
ErstesPraktikum.cpp
#include <opencv2corecore.hpp>
#include <opencv2highguihighgui.hpp>
#include <opencv2imgprocimgproc.hpp>
#include <fstream>
using namespace std;
using namespace cv;
String convertInteger(int value)
{
stringstream ss;
ss << value;
return ss.str();
}
String createNameString(String path, String fileName, String fileExtension, int buildNumber)
{
String pathString = path.append(fileName);
pathString = pathString.append(".");
pathString = pathString.append(convertInteger(buildNumber));
pathString = pathString.append(".");
pathString = pathString.append(fileExtension);
return pathString;
}
void readImage(String nameString, Mat * image)
{
double mn = 0, mx = 0;
image = &cv::Mat(cv::Size(512, 512), IPL_DEPTH_8U, 1);
unsigned short *data;
data = (unsigned short *)image->data;
FILE *file;
file = fopen(nameString.c_str(), "rb");
fseek(file, 1340, SEEK_SET);
fread(data, sizeof(unsigned short)*512*512, 1, file);
fclose(file);
//cv::cvSmooth(Image,Image);
//cv::minMaxLoc(image, &mn, &mx, NULL, NULL, 0);
//cv::convertScaleAbs(image, *target, 255/mx, -mn*255/mx);
}
void extractObjects(int threshold, Mat * img, Mat * binImg)
{
}
Praktikum_gra.h
class Praktikum_gra
{
public:
int main(void);
}
Praktikum_gra.cpp
#include "ErstesPraktikum.h"
using namespace std;
using namespace cv;
int main(void)
{
String path("C:\Users\xxx\xxx\xxx\GRA P1\Head_M\");
String fileName("vhm");
String fileExtension("dcm");
ErstesPraktikum prak;
for(int i = 1001; i <= 1245; i++)
{
String nameString = prak.createNameString(path, fileName, fileExtension, i); // this line is the cause of the error message, but why ?
}
return 0;
}
我已经尝试为所有方法添加类前缀,例如:
String ErstesPraktikum::createNameString(String path, String fileName, String fileExtension, int buildNumber)
{
// [...]
}
但这会抛出另一个错误消息:
Error 1 error C2653: 'ErstesPraktikum' : is not a class or namespace name c:usersxxxdocumentsvisual studio 2008projectsgragra_u1erstespraktikum.cpp 17 GRA
你必须
#include "ErstesPraktikum.h"
在ErstesPrakticum.cpp
.然后,您需要在实现中使用ErstesPrakticum::
。
String ErstesPraktikum::createNameString( .... ) { .... }
等等。
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 错误 LNK2019:未解析的外部符号"外部"C"此错误是什么?
- 错误 : LNK2019: 未解析的外部符号"外部 "C"