Linux(glibc)是符号链接,不同版本指向不同的共享链接库,如libc-2.27.so,libc-2.31。所以。x86-64/lib/x86_64-linux-gnu/libc.so.6/lib/x86_64-linux-gnu/libm.so.6/lib/x86_64-linux-gnu/libpthread.so.0...aarch64/lib/aarch64-linux-gnu/libc.so.6/lib/aarch64-linux-gnu/libm.so.6/lib/aarch64-linux-gnu/libpthread.so.0...Linux(musl)作为符号链接,不同的版本指向不同的共享链接库。x86/lib/libc.musl-x86.so.1Darwinx86-64aarch64/usr/lib/libc.dylib->libSystem.dylib/usr/lib/libm.dylib->libSystem.dylib/usr/lib/libpthread.dylib->libSystem.dylib...所以在Darwin上编译包含math.h和pthread.h的C语言源码不需要通过-lm,-动态链接/usr/lib/libm.dylib,/usr/lib/pthreadlibpthread.dylib,因为/usr/lib/libm.dylib、/usr/lib/libpthread.dylib是指向libSystem.dylib的符号链接。但是为了提高代码的可移植性,还是建议用-lm,-pthread编译。Windows在Windows系统上,经常会有不同版本的MicrosoftVisualC++Runtime动态链接库(随系统版本不同而不同);许多应用程序为了适应不同版本的系统,会使用自己的MicrosoftVisualC++Runtime动态链接库,而系统并不提供。C:\Windows\System32\msvcrt.dllC:\Windows\System32\msvcr100.dllC:\Windows\System32\msvcr110.dllC:\Windows\System32\msvcr120.dll...
