gcc默认选择静态库还是动态库?

gcc默认调用哪个库文件?

现在在一个文件夹内,生成了同名的静态库和动态库文件libmyhello.a 和 libmyhello.so,执行gcc -o hello main.c -L. -lmyhello,结果会是怎样的呢?
在这里插入图片描述
编译执行程序:
gcc默认选择静态库还是动态库?_第1张图片
尽管程序未能正常执行,但是从反馈的错误信息上可以看出,这个错误是由于缺失.so文件所导致的(未将libmyhello.so放入/usr/lib)。因此,在同时有同名的静态和动态库的情况下,gcc默认是选择动态库的。
现在我们修复这个问题:
将libmyhello.so放入/usr/lib,再编译运行:
gcc默认选择静态库还是动态库?_第2张图片
重新编译后还需使用ldconfig命令,否则仍然找不到.so文件
现在程序可正常运行:
在这里插入图片描述

你可能感兴趣的:(gcc)