Note/ 编译基础知识

Published:

ld <头文件和主函数等需要链接的文件> -o <输出>

nm <可执行文件> T表示当前有实现

.o 文件可以作为库文件复用,例如数学方法库;可以将一些列.oar工具打包为.a静态库

.so 表示shared lib;静态库将库都包含在内,程序体积更大

-I 指定不在标准路径的header的路径,里面是.h文件

-l link一些库(去掉lib前缀和.a或.so后缀的名字)

-l netcdflink动态库.so -static -llink静态库.a,用-L给定路径

编译成功后可能有动态库所以通过编译,但动态库找不到需要使用的库;需要用LD_LIBRARY_PATH环境变量给出对应的lib/地址,即可继续执行;静态编译则不会用这个问题,但文件比较大

makefile 简化编译;configure 生成makefile;