windows下我的环境为:Windows10+VS2015+opencv3.4.0+opencv3.4.0_contrib+python
linux下我的环境为:
ubuntu16004(也有ubuntu1804)+opencv3.4.0+opencv3.4.0_contrib+python+GNU(g++和gdb)+caffe+cuda
在linux下的程序与在windows下的程序主体可以说是一致的,差别在于:
1、在windows下目录路径里是“\”分隔,在书写时考虑到引号内的歧义,写成"xxx\\yy\\z"的双斜杠;
在linux下目录路径里是“/“分隔,这也影响到头文件的书写,且不需要写成双斜杠格式。(划重点)
2、然后还需要注意的是,linux下GNU会检查主函数的返回类型,即必须int main,然后主程序里返回一个整型;
而在windows下可以用void main,会忽略掉该检查。(划重点)
windows下是使用IDE编程的,在IDE里面完成书写、编译、调试。
linux下用vim等文字编辑器书写、用g++编译、用gdb调试。
常用的g++命令:g++ test.cpp -Wall -o test (需要gdb调试最后还需要加上-g命令)
g++ test.cpp `pkg-config opencv --cflags --libs` -Wall -o test(编译opencv库的cpp)
常用的gdb命令:“gdb”命令启动GDB,将首先显示GDB说明
(gdb) file test //声明gdb调试的程序
(gdb) b main //设置断点
(gdb) p x //打印变量
(gdb) s //step命令,执行下一步
(gdb) c //执行程序,直到下一个断点出现或程序结束
(gdb) r //执行程序