[skill][c][ld][gcc] 明确指定gcc在链接时明确使用静态库
通常,我们这样链接:
gcc -o a.out -L/usr/lib/ -ltest a.o
这样它会链接动态库 libtest.so, 可是有时候我们想在静态库与动态库同时存在时,优先使用静态库。
当然,我们可以这样:
gcc -o a.out a.o /usr/lib/libtest.a
可是总感觉这是一条野路,于是找了一条没那么野的路。
gcc -o a.out -L/usr/lib/ -l:libtest.a a.o
据说在ld的文档里,可以找到这种用法的描述。
参考: https://stackoverflow.com/questions/6578484/telling-gcc-directly-to-link-a-library-statically