llvm

Centos 下 ld 链接器版本更新

gcc release info

详解三大编译器:gcc、llvm 和 clang | libicon库链接问题一则

查找iconv相关符号表
nm /lib64/libstdc++.so | grep iconv

查找依赖库
ldd test_cond

verbose查看详细编译信息, 分析库文件查找过程
gcc -g -o test test.c -liconv -v

查看环境变量
env  #显示所有环境变量
env | grep LD_LIBRARY_PATH
echo $HOME

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
readelf 

https://stackoverflow.com/questions/13334300/how-to-build-and-install-gcc-with-built-in-rpath


查看头文件目录查找顺序
gcc test.cpp -v
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../include/c++/11.2.0
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../include/c++/11.2.0/x86_64-pc-linux-gnu
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../include/c++/11.2.0/backward
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include
 /usr/local/include
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed
 /usr/include
End of search list.

gcc默认链接的库:
-lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.2.0/crtend.o /lib/../lib64/crtn.o

查看目标文件与库的链接选项及顺序:
ld -verbose | grep SEARCH
SEARCH_DIR("=/usr/x86_64-redhat-linux/lib64"); 
SEARCH_DIR("=/usr/lib64"); 
SEARCH_DIR("=/usr/local/lib64"); 
SEARCH_DIR("=/lib64"); 
SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); 
SEARCH_DIR("=/usr/local/lib"); 
SEARCH_DIR("=/lib"); 
SEARCH_DIR("=/usr/lib");