使用gcc编译和链接的笔记记录

编译和链接时都加上-pthread,而不是在链接的时候加上-lpthread

链接时如果出现 undefined reference to xxx 可能是xxx符号写成了静态变量或函数

-Wl,-Bsymbolic:编译动态库时可以加上这个选项,优先使用本地符号,防止在动态库被调用时动态库的全局量与调用程序的冲突,如果有,则优先使用本地的。

-fPIC:编译时生成位置无关码

-shared :链接时生成动态库

-I PATH(大写i添加头文件路径,中间有空格)

-lm (小写L,m是库名,中间无空格)

-L PATH(添加库的路径,中间有空格)

LIBS变量最好放在gcc 命令选项最后,这样命令执行时不会出错

如果有动态库调用,又不想设置动态库在程序执行时被查询的路径  那么可以在链接时加上   

                         -Wl,-rpath,'path'  来指定库的路径

你可能感兴趣的:(c语言)