class MyCompare
{
public:
bool operator()(int v1, int v2)
{
return v1 > v2;
}
};
使用STL set容器,通过类的方法自定义数据顺序时,报以上错误
修改方法:
class MyCompare
{
public:
bool operator()(int v1, int v2) const
{
return v1 > v2;
}
};
刚开始以为是图片格式方面的问题,先用Python存成8位jpg文件,发现仍然存在。
后来查了下,把
system("pause");
改为:
cv::waitKey(0);
就可以了。
真是交了智商税。
#define CYCLES 49;
for (int cycle = 0; cycle < CYCLES; cycle++)
{
***
}
产生原因:#define
语句后加了分号。
#define CYCLES 49
我遇到此bug,是将函数正文也放在了头文件中,然后有多个文件调用了该头文件。
正确的做法是: 从头文件中删除函数正文,只留声明,然后在唯一的源文件中实现函数。
// LNK2005_func_decl.h
int sample_function(int);
// LNK2005_func_impl.cpp
int sample_function(int k)
{ return 42 * (k % 167); }
make: warning: Clock skew detected. Your build may be incomplete
产生原因:系统时间比文件修改时间早。
解决办法:
sudo date 查询系统时间
sudo date -s MM/DAY/YEAR 修改系统日期
sudo date -s hour:min:senconds 修改系统时间
解决办法:
项目右键——生成依赖项,选择对应的cuda版本。
在项目属性中依次选择如下选项,删除错误提示中的项。
重新生成。
安装完pthread 库,设置好lib/include,调试过程中报上述错误。
参考C语言编写多线程报错unresolved external symbol __imp__pthread_join,添加
#pragma comment(lib, "pthreadVC2.lib")
仍然解决不了问题。
后来意识到这个pthread 库是32位的,把平台从X64改到X86,重新设置lib/include路径,就OK了。
完整安装方式可参考vs2019 libtiff安装及应用。
[1] C++错误C3848:具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool MyCompare::operator ()(int,int)
[2] C++Opencv显示图片的时候,一直加载显示不出来
[3] Linux GCC编译警告:Clock skew detected. 错误解决办法
[4] 链接器工具错误 LNK2005
[5] C语言编写多线程报错unresolved external symbol __imp__pthread_join
[6] vs2019 libtiff安装及应用