cmakelist编译文件应该怎么写?link_directories和target_link_libraries以及link_directories的关系
1.什么是动态链接库和静态链接库?
Linux下的库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀
Windows 下.DLL是动态链接库, .LIB是静态链接库
动态库与静态库的区别
动态库个编译好的程序,程序运行时可以直接调用其中的函数, 不参加工程的编译.
而静态库应该说是一个程序集, 只是把一些相应的函数总结在一起, 如果调用静态库中的函数,在编译时,这些调用的函数都将参加编译
静态库必要的目标代码的是在对程序编译的时候被加入到程序中,而运行时不再需要.a的库了
而动态库,则是在运行时转载
从内存管理的角度来看
静态库必须被链接到主程序中,主程序进入内存,静态库也同时进入内存
而动态库则是需要用到它的时候由操作系统调入内存
2.include_directorie
cmake使用 include_directories是用来 提供搜索头文件路径
cmake本身不提供任何搜索库的便捷方法,所有搜索库并给变量赋值的操作必须由cmake代码完成
比如,我现在想要#include"cv.h",但是这个cv.h的路径是/usr/local/include/opencv,那么我总不能在主函数头前写#include “/usr/local/inc