使用超级快的链接器: https://github.com/rui314/mold
更有效的算法和数据结构, 高度并行
git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.0.1
make -j$(nproc) CXX=clang++或者GCC,需要支持c++20的编译器
sudo make install
Makefile:
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
LIBDIR ?= $(PREFIX)/lib
LIBEXECDIR ?= $(PREFIX)/libexec
MANDIR ?= $(PREFIX)/share/man
PREFIX 指定路径,默认/usr/local
install后,mold在/usr/local/bin
在/usr/local/libexec/mold下会有软连接
Clang: -fuse-ld=mold
GCC 12.1.0 之后: -fuse-ld=mold
GCC 12.1.0 之前: -B/usr/local/libexec/mold
查看是否用mold链接的:readelf -p .comment
RHEL6.5 log4cxx、 protobuf3.0、mysqlpp 静态库链接后,程序启动后crash,用动态库可以解决