PistonDevelopers / conrod

An easy-to-use, 2D GUI library written entirely in Rust.
Other
3.35k stars 296 forks source link

Compile failed in windows vscode #1276

Open gihugui opened 5 years ago

gihugui commented 5 years ago
er32" "-lkernel32" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(ShaderLang.cpp.obj):ShaderLang.cpp:(.text$_ZL6printfPKcz+0x29): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(ossource.cpp.obj):ossource.cpp:(.text$_Z6printfPKcz[_Z6printfPKcz]+0x29): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_ZL14yy_stack_printPsS_+0xd): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_Z7yyparsePN7glslang13TParseContextE+0x2af): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_Z7yyparsePN7glslang13TParseContextE+0x347): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_Z7yyparsePN7glslang13TParseContextE+0x387): more undefined references to `__imp___acrt_iob_func' follow

error: aborting due to previous error

error: Could not compile `vulkano-shaders`.
gihugui commented 5 years ago
   Compiling gfx v0.17.1
   Compiling conrod_example_shared v0.64.0 (E:\hg_learn\conrod-master\backends\conrod_example_shared)
   Compiling conrod_glium v0.64.0 (E:\hg_learn\conrod-master\backends\conrod_glium)
   Compiling conrod_piston v0.64.0 (E:\hg_learn\conrod-master\backends\conrod_piston)
   Compiling conrod_gfx v0.64.0 (E:\hg_learn\conrod-master\backends\conrod_gfx)
   Compiling vulkano-shaders v0.11.1
error: linking with `gcc` failed: exit code: 1
  |
  = note: "gcc" "-Wl,--enable-long-section-names" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\dllcrt2.o" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.0.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.1.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.10.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.11.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.12.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.13.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.14.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.15.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.2.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.3.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.4.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.5.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.6.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.7.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.8.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.vulkano_shaders.dxsxfwi5-cgu.9.rcgu.o" "-o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.dll" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.d5ny3d6i6lo3z7h.rcgu.o" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\vulkano_shaders-1f5c2f07714f7c97.39ceva72dpwos3l9.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "E:\\hg_learn\\conrod-master\\target\\debug\\deps" "-L" "E:\\hg_learn\\conrod-master\\target\\debug\\build\\shaderc-44fd39280d9f91c2\\out\\lib" "-L" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\libsyn-181ee6aa1fbc0862.rlib" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\libshaderc-6f22899143965b29.rlib" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\liblibc-e50d2a63019f065f.rlib" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\libquote-aa1ae40ba78aa95d.rlib" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\libproc_macro2-72de991ff6d55c45.rlib" "E:\\hg_learn\\conrod-master\\target\\debug\\deps\\libunicode_xid-14e8da7f4ad9d32d.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libproc_macro-c665edd770401ba4.rlib" "-Wl,--start-group" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-0db2f2486be64fbb.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-b16ee64d7fc61f32.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-3bac90ec46d946ff.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-2b6d48fc4bc1e636.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-79b7de5af2157903.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-6e9f89f57c87fe8e.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-3cfb37c8d77f32ab.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-d417f17ac59efd97.rlib" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-eab30361114789ca.rlib" "-Wl,--end-group" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-b848c20e995892aa.rlib" "-Wl,-Bdynamic" "-lstdc++" "-ladvapi32" "-lws2_32" "-luserenv" "-Wl,-Bstatic" "-lgcc_eh" "-lpthread" "-shared" "-Wl,-Bdynamic" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-lmsvcrt" "-luser32" "-lkernel32" "C:\\Users\\Admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(ShaderLang.cpp.obj):ShaderLang.cpp:(.text$_ZL6printfPKcz+0x29): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(ossource.cpp.obj):ossource.cpp:(.text$_Z6printfPKcz[_Z6printfPKcz]+0x29): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_ZL14yy_stack_printPsS_+0xd): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_Z7yyparsePN7glslang13TParseContextE+0x2af): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_Z7yyparsePN7glslang13TParseContextE+0x347): undefined reference to `__imp___acrt_iob_func'
          E:\hg_learn\conrod-master\target\debug\deps\libshaderc-6f22899143965b29.rlib(glslang_tab.cpp.obj):glslang_tab.cpp:(.text$_Z7yyparsePN7glslang13TParseContextE+0x387): more undefined references to `__imp___acrt_iob_func' follow

error: aborting due to previous error

error: Could not compile `vulkano-shaders`.

To learn more, run the command again with --verbose.

E:\hg_learn\conrod-master>

E:\hg_learn\conrod-master>
mitchmindtree commented 5 years ago

Thanks for the report!

It looks like the error is specifically occuring within the vulkano backend - specifically while compiling the shaderc crate (the lib that compiles GLSL to SPIR-V). You can check whether your system is setup for shaderc by reading this checklist.

The shaderc crate is a particularly frustrating dependency as it's mostly bindings to C++ and Python. Hopefully we'll get a pure-rust GLSL->SPIR-V crate one day!

Let me know if this helps!

6A61736F6E206E61646572 commented 4 years ago

I had the same problem and managed to solve it by using the MSVC-based Rust compiler. See https://github.com/alexcrichton/curl-rust/issues/239#issuecomment-440721420 for details.

I had installed rustup using scoop, so switching to the MSVC-based one was as simple as scoop install rustup-msvc, but I think rustup default stable-x86_64-pc-windows-msvc before compiling should work too.