首先,C/C++的编译链接过程可以概括为:编译器处理源文件和头文件,生成目标文件(.o);链接器将这些目标文件和库文件(.a/.so)结合起来,生成可执行文件。在Linux环境下,下载的外部库通常为静态库(.a)或动态库(.so)。接下来是CMake的作用。CMake是构建管理工具,用于管理编译和链接过程。在CMake中...
还有一种库下载以后lib里面是.so文件,其是通过动态链接和其他文件链接到一起的。 .a文件是静态库,在编译的时候会将静态库的代码直接嵌入到程序中,这样可以避免在运行时出现动态链接的问题,但是会增加程序的体积。 .so文件是动态库,在编译的时候不会将动态库的代码嵌入到程序中,而是在运行时进行动态链接,这样可以...