我使用包含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更新答案 –