大家好,又见面了,我是你们的朋友全栈君。
运行vs程序的时候,报错严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl PointCloudFilter::setptClouds(struct LAS_POINT *)" (__imp_?setptClouds@PointCloudFilter@@QEAAXPEAULAS_POINT@@@Z),该符号在函数 "private: void __cdecl PointCloudFilters::doAction(void)" (?doAction@PointCloudFilters@@AEAAXXZ) 中被引用
,如下图所示:
报这个错误一般是因为使用了一些未定义或者没找到定义的函数或者变量等等。解决的方法通常有以下几种:
类名::
)。项目->属性->配置属性->VC++目录->库目录
里进行添加,如下图所示:
PointCloudFilter
类这里。于是,我们打开这个类的头文件,可以在开头的地方发现几行预处理代码,如下图所示。这是一个if_else的语句,大致意思是,如果定义了DLL_IMPLEMENT
,则将DLL_API
这个宏的值设置为输出dll文件,否则设置为输入dll文件。而这里,这个工程是要输出dll文件的,因此,我们需要在这些代码运行之前先定义好DLL_IMPLEMENT
。
解决办法就是,打开项目->属性->配置属性->C/C++->预处理器
,然后在预处理器栏目这里加上DLL_IMPLEMENT
这个宏,如下图所示。确认保存后,再运行程序,就不会报错了。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153450.html原文链接:https://javaforall.cn