|head -n 1000000 | sort | uniq -c
I
选项代表 include path,使我们可以 #include <co.h>
。你可以使用 gcc --verbose
编译看到编译器使用的 include paths。L
选项代表增加 link search path。l
选项代表链接某个库,链接时会自动加上 lib
的前缀,即 lco-64
会依次在库函数的搜索路径中查找 libco-64.so
和 libco-64.a
,直到找到为止。如果你将 libco-64.so
删除后用 strace 工具查看 gcc 运行时使用的系统调用,就能清晰地看到库函数解析的流程; asm ( assembler template
: output operands /* optional */
: input operands /* optional */
: list of clobbered registers /* optional */
);
A clobbered register is a register which is trashed i.e. modified in unpredictable way by inline assembler. This usually happens when you need a temp.
fsanitize=address
fsanitize=thread