C++编译错误整合
-
1.编译报错:
warning: control reaches end of non-void function [-Wreturn-type]
-
解决办法:
控制到达非void函数的结尾,一些本应带有返回值的函数到达结尾后可能并没有返回任何值。检查各个函数类型及返回值。
-
2.编译错误:
字符串对比时警告:
Comparison with string literal results in unspecified behaviour
原始代码:if(flag=="a"){}
-
解决办法:
包含头文件:#include<string.h>
更改代码:if(strcmp("a",flag)==0){}//=0则字符串一样,!0则不一样
-
3.编译错误:
c++多线程编译报错:
/usr/bin/ld: xxx.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
-
解决办法:
makefile文件中,把CXX = g++
改为CXX = g++ -pthread -std=c++11
-
4.编译错误:
c++中sleep
休眠函数使用方法:
头文件:#include<unistd.h>
usleep(10000);//休眠1ms
- 5.编译错误:
c++编译中出现‘vtable for ***未定义的引用解决办法
- 解决办法:
1.若为qt工程,在.pro文件
中加上HEADERS += xxxxx.h,先qmake ,再make即可
2.若为cmakelist.txt
工程,则在cmakelist.txt
中加上add_executable(project_name include/xxxxxx.h)