我使用包含libLLVM * .so文件和相应的libLLVM * .a文件的本地LLVM构建Julia。这是由BUILD_SHARED_LIBS=ON
构建的,它负责libLLVM * .so文件的存在。链接器是否比.a文件更喜欢.so文件?
libjulia.so,由julia
可执行程序使用的库,总是与libLLVM *。所以文件,甚至当我重建LLVM与BUILD_SHARED_LIBS=OFF
(默认配置)。 llvm-config --libs $LIB
的输出有和没有BUILD_SHARED_LIBS=ON
没有太大的差异,似乎没有什么暗示llvm-config
发出链接选项,指示链接器链接* .so文件或* .a文件。
为什么会出现这种情况?即使。。存在同名的文件,链接器的默认行为是否使用.so文件?或者,是否有Julia重用的构建配置缓存?
感谢您的回答!为什么'ld'喜欢共享库在静态的链接? – kesari
@kesari更新答案 –