抽空了解一下opencv的文件系统结构。
先上图,这是opencv 源码解压后的截图。
然后是编译后的文件系统截图~/opencv-3.0.0-rc1
对比可知,opencv工程经编译后,主要的变化是得到了一个build文件夹。然后是~/opencv-3.0.0-rc1/build文件夹截图
而build文件下,主要的也是一个lib文件夹,里面是各种编译好的库,主要是共享库。
- ~/opencv-3.0.0-rc1/build/include中的头文件,要比~/opencv-3.0.0-rc1/build文件夹里面头文件少很多,这个很好理解,毕竟在编译的时候头文件是非常重要的。
- ~/opencv-3.0.0-rc1/build/modules 比 opencv-3.0.0-rc1/modules大得多,想必是编译的时候对mudules进行了编译。
记得在《学习opencv》里看到过,opencv会安装在目录:/usr/local/lib 和 /usr/local/opencv/include 。看了/usr/local/lib文件下的内容
确实有很多opencv的共享库,而且在属性上,可以发现 ~/opencv-3.0.0-rc1/build/lib中的库与/usr/local/lib下的库的创建日期是一样的,想必是opencv工程在build的同时也将共享库拷贝到/usr/local/lib文件下了。至于头文件方面,两者差不多。
7.但是,/usr/local/bin下的可执行文件要比~/opencv-3.0.0-rc1/build/bin下少得多,而两者的创建时间相同,想必应该是拷贝了极少的可执行文件到/usr/local/bin。
- 了解一下这种开源项目的文件系统在一定程度上可以帮助理解gcc编译大型工程的一个整体流程。