Since updating my toolchain to 1.67-x86_64-pc-windows-msvc I am now unable to build a crate that depends on shaderc. If I create a simple project with:
cargo new shaderc_test
cd shaderc_test
cargo add shaderc
And modify src/main.rs to:
use shaderc::Compiler;
fn main() {
let compiler = Compiler::new().unwrap();
println!("Hello, world!");
}
cargo build will give the following error:
error: linking with `link.exe` failed: exit code: 1377
|
= note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.31.31103\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\enaku\\AppData\\Local\\Temp\\rustcS8yjpU\\symbols.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.1da0qcrv6jcb53ue.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.1wke1ryfpb9g28wy.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.2o68n2l8aqsfxyeo.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.397bbwv6md8qefv4.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.44uaa13kd8y7oxw7.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.47hytwwgw7qau3s4.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.ifxhz3lrx3e199n.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.1v2gxaxgar1yn8k7.rcgu.o" "/LIBPATH:C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps" "/LIBPATH:C:\\VulkanSDK\\1.3.211.0\\Lib" "/LIBPATH:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\libshaderc-abccb43ce05b4ccd.rlib" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\libshaderc_sys-5ba1156ecedc7241.rlib" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\liblibc-3a1484c748211e20.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-d948d7ba3a1428f8.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-160203b957826e76.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-b24bd95fe5d36805.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-0e9d70f22be1c0d7.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-b095d6ec0de2c748.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-fb910d16a05b94c5.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-3a4bfb6892558bf2.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-a9e6a5964ad33a4c.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-213bb51833c43573.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-4140ea5b1ce3650e.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-9a1df03c8e50ccf9.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-860856f6a77183a1.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-d38e1b9df5cea3b4.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-b993f6ac479af571.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-3f0eed38bcc54ffc.rlib" "legacy_stdio_definitions.lib" "kernel32.lib" "advapi32.lib" "userenv.lib" "kernel32.lib" "ws2_32.lib" "bcrypt.lib" "msvcrt.lib" "legacy_stdio_definitions.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
= note: libshaderc_sys-5ba1156ecedc7241.rlib(ShaderLang.obj) : fatal error LNK1377: '??_EIncluder@TShader@glslang@@UEAAPEAXI@Z' symbol not found in object. The containing library is corrupt.
warning: `shaderc_test` (bin "shaderc_test") generated 1 warning
error: could not compile `shaderc_test` due to previous error; 1 warning emitted
If I switch my toolchain back to 1.66 with rustup default 1.66, then everything builds fine.
Some further notes:
Building this repository works fine, but I'm assuming that's because the linker does not get invoked
Adding/removing the build-from-source flag doesn't appear to make a difference
I get the following warning when building shaderc:
warning: shaderc: searching native shaderc libraries in Vulkan SDK 'C:\VulkanSDK\1.3.211.0/lib'
warning: shaderc: Windows MSVC static build is experimental
I am not very familiar with shaderc or C/C++ development so I've not really done much digging, but I'm more than happy to investigate if need be
Background
Hi, there!
Since updating my toolchain to
1.67-x86_64-pc-windows-msvc
I am now unable to build a crate that depends onshaderc
. If I create a simple project with:And modify
src/main.rs
to:cargo build
will give the following error:If I switch my toolchain back to 1.66 with
rustup default 1.66
, then everything builds fine.Some further notes:
build-from-source
flag doesn't appear to make a differenceshaderc
: