ruby/rubygems · error · Gem::Ext::CargoBuilder::DylibNotFoundError
Dynamic library not found for Rust extension (in #{dir}) Ma
Error message
Dynamic library not found for Rust extension (in #{dir})
Make sure you set "crate-type" in Cargo.toml to "cdylib"
Found files:
#{files} What it means
Error "Dynamic library not found for Rust extension (in #{dir}) Make sure you set "crate-type" in Cargo.toml to "cdylib" Found files: #{files}" thrown in ruby/rubygems.
Source
Thrown at lib/rubygems/ext/cargo_builder.rb:43
# Where's the Cargo.toml of the crate we're building
cargo_toml = File.join(cargo_dir, "Cargo.toml")
# What's the crate's name
crate_name = cargo_crate_name(cargo_dir, cargo_toml, results)
begin
# Create a tmp dir to do the build in
tmp_dest = Dir.mktmpdir(".gem.", cargo_dir)
# Run the build
cmd = cargo_command(cargo_toml, tmp_dest, args, crate_name)
runner.call(cmd, results, "cargo", cargo_dir, build_env)
# Where do we expect Cargo to write the compiled library
dylib_path = cargo_dylib_path(tmp_dest, crate_name)
# Helpful error if we didn't find the compiled library
raise DylibNotFoundError, tmp_dest unless File.exist?(dylib_path)
# Cargo and Ruby differ on how the library should be named, rename from
# what Cargo outputs to what Ruby expects
dlext_name = "#{crate_name}.#{makefile_config("DLEXT")}"
dlext_path = File.join(File.dirname(dylib_path), dlext_name)
FileUtils.cp(dylib_path, dlext_path)
nesting = extension_nesting(extension)
if Gem.install_extension_in_lib && lib_dir
nested_lib_dir = File.join(lib_dir, nesting)
FileUtils.mkdir_p nested_lib_dir
FileUtils.cp_r dlext_path, nested_lib_dir, remove_destination: true
end
# move to final destination
nested_dest_path = File.join(dest_path, nesting)
FileUtils.mkdir_p nested_dest_pathView on GitHub (pinned to 86cbb817a3)
When it happens
Trigger: Thrown at lib/rubygems/ext/cargo_builder.rb:43 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruby/rubygems@86cbb817a3 (2026-08-23).
Data as JSON: /api/errors/9d6a5c227eecb8eb.
Report an issue: GitHub.