我正在Windows上構建一個Ruby C擴展,它需要一些外部C庫,特別是libcurl及其依賴項。我有curllib dll和.a文件。但是,當我使用extconf.rb構建它時,它總是動態鏈接這些庫,這需要某人安裝curl並在其windows路徑中使用編譯的擴展。相反,我希望extconf.rb靜態鏈接curl及其依賴關係,以便任何人都可以在Windows上使用擴展,而不必先將curllib添加到其路徑中。如何在編譯Ruby C擴展時靜態鏈接外部庫
這是我extconf.rb
require 'mkmf'
# Name the extension.
extension_name = 'ConnectionManager'
dir_config("curl")
# Make sure the cURL library is installed.
have_library("curl")
# Create the Makefile.
create_makefile(extension_name)
這是我生成的makefile我與
ruby extconf.rb --with-curl-dir=C:/Knapsack/x86-windows
命令是否有東西,我可以添加到我的extconf.rb文件或命令強制ruby靜態鏈接外部庫到我的C擴展?任何幫助將不勝感激,請讓我知道,如果你需要任何更多的信息。
實際上,我試圖鏈接與Ruby的C擴展CURL自己。將有興趣聽到你如何得到。如果您想分享鏈接CURL的一些經驗,請通過我在我的答案中發佈的Bitbucket鏈接找到我。 – thomthom