lit-robotics / rust-ncnn

Rust bindings for NCNN
Apache License 2.0
4 stars 1 forks source link

Vulkan does not work on windows #1

Open chemicstry opened 2 years ago

chemicstry commented 2 years ago

Linking fails on windows:

$ cargo run --example benchmark --release --features ncnn-bind/vulkan
   Compiling ncnn-bind v0.1.1 (D:\Dev\rust-ncnn\ncnn-bind)
   Compiling ncnn-rs v0.1.1 (D:\Dev\rust-ncnn\ncnn-rs)
error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\User\\AppData\\Local\\Temp\\rustcUnL6DA\\symbols.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.0.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.1.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.10.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.11.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.12.rcgu.o" 
"D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.13.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.14.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.15.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.2.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.3.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.4.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.5.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.6.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.7.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.8.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.benchmark.dac570e1-cgu.9.rcgu.o" "D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.1xinaw9h0nl01xq1.rcgu.o" "/LIBPATH:D:\\Dev\\rust-ncnn\\target\\release\\deps" "/LIBPATH:D:\\Dev\\rust-ncnn\\target\\release\\build\\ncnn-bind-90dd69b393bc8391\\out" "/LIBPATH:D:\\Dev\\rust-ncnn\\target\\release\\build\\ncnn-bind-90dd69b393bc8391\\out\\lib" "/LIBPATH:C:\\Program Files\\VulkanSDK\\1.2.131.2/Lib" "/LIBPATH:C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "D:\\Dev\\rust-ncnn\\target\\release\\deps\\libncnn_rs-e8c73af622e9203d.rlib" "D:\\Dev\\rust-ncnn\\target\\release\\deps\\libanyhow-976e149dbb5e08fd.rlib" "D:\\Dev\\rust-ncnn\\target\\release\\deps\\liblibc-c6c5f38c304d847a.rlib" "D:\\Dev\\rust-ncnn\\target\\release\\deps\\libncnn_bind-de02af2c5c88bbc4.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-4a00450d169b6eb7.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-aebdd47781a8ded3.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-75d00692298b803c.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-212d184ebbb3da0c.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-bb2ae27a3860a710.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-aebeb1235b6ade9b.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-8d905bd195def6d5.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-cdd36af8506e2d87.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-57642f47c953f1ca.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-ddc101acd19cf3dd.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-304d7f6977c84a4b.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-32d7ee0be9e46c85.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-015e9ae63a74e3a1.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-15d7d0533432428b.rlib" "C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-cfe8447efe28cb1e.rlib" "vulkan-1.lib" "glslang.lib" "SPIRV.lib" "OGLCompiler.lib" "OSDependent.lib" "advapi32.lib" "userenv.lib" "kernel32.lib" "ws2_32.lib" "bcrypt.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:D:\\Dev\\rust-ncnn\\target\\release\\examples\\benchmark.exe" "/OPT:REF,ICF" "/DEBUG" "/NATVIS:C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\User\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis" "-fuse-ld=lld"
  = note: LINK : warning LNK4044: unrecognized option '/fuse-ld=lld'; ignored
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "bool __cdecl glslang::InitializeProcess(void)" (?InitializeProcess@glslang@@YA_NXZ) referenced in function "int __cdecl ncnn::create_gpu_instance(void)" (?create_gpu_instance@ncnn@@YAHXZ)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "void __cdecl glslang::FinalizeProcess(void)" (?FinalizeProcess@glslang@@YAXXZ) referenced in function "void __cdecl ncnn::`dynamic atexit destructor for 'g_instance''(void)" (??__Fg_instance@ncnn@@YAXXZ)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: __cdecl glslang::TShader::TShader(enum EShLanguage)" (??0TShader@glslang@@QEAA@W4EShLanguage@@@Z) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: virtual __cdecl glslang::TShader::~TShader(void)" (??1TShader@glslang@@UEAA@XZ) referenced in function "int __cdecl 
ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: void __cdecl glslang::TShader::setStringsWithLengths(char const * const *,int const *,int)" (?setStringsWithLengths@TShader@glslang@@QEAAXPEBQEBDPEBHH@Z) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: void __cdecl glslang::TShader::setEntryPoint(char const *)" (?setEntryPoint@TShader@glslang@@QEAAXPEBD@Z) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: void __cdecl glslang::TShader::setSourceEntryPoint(char const *)" (?setSourceEntryPoint@TShader@glslang@@QEAAXPEBD@Z) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: void __cdecl glslang::TShader::addProcesses(class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > const &)" (?addProcesses@TShader@glslang@@QEAAXAEBV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: bool __cdecl glslang::TShader::parse(struct TBuiltInResource const *,int,enum EProfile,bool,bool,enum EShMessages,class glslang::TShader::Includer &)" (?parse@TShader@glslang@@QEAA_NPEBUTBuiltInResource@@HW4EProfile@@_N2W4EShMessages@@AEAVIncluder@12@@Z) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: char const * __cdecl glslang::TShader::getInfoLog(void)" (?getInfoLog@TShader@glslang@@QEAAPEBDXZ) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          libncnn_bind-de02af2c5c88bbc4.rlib(gpu.obj) : error LNK2019: unresolved external symbol "public: char const * __cdecl glslang::TShader::getInfoDebugLog(void)" (?getInfoDebugLog@TShader@glslang@@QEAAPEBDXZ) referenced in function "int __cdecl ncnn::compile_spirv_module(char const *,int,class ncnn::Option const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?compile_spirv_module@ncnn@@YAHPEBDHAEBVOption@1@AEAV?$vector@IV?$allocator@I@std@@@std@@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: void __cdecl glslang::TPoolAllocator::push(void)" (?push@TPoolAllocator@glslang@@QEAAXXZ) referenced in function "void __cdecl glslang::GlslangToSpv(class glslang::TIntermediate const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &,struct glslang::SpvOptions *)" (?GlslangToSpv@glslang@@YAXAEBVTIntermediate@1@AEAV?$vector@IV?$allocator@I@std@@@std@@PEAUSpvOptions@1@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: void __cdecl glslang::TPoolAllocator::pop(void)" (?pop@TPoolAllocator@glslang@@QEAAXXZ) referenced in function "void __cdecl glslang::GlslangToSpv(class glslang::TIntermediate const &,class std::vector<unsigned int,class std::allocator<unsigned int> > &,struct glslang::SpvOptions *)" (?GlslangToSpv@glslang@@YAXAEBVTIntermediate@1@AEAV?$vector@IV?$allocator@I@std@@@std@@PEAUSpvOptions@1@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: void * __cdecl glslang::TPoolAllocator::allocate(unsigned __int64)" (?allocate@TPoolAllocator@glslang@@QEAAPEAX_K@Z) referenced in function "protected: struct std::_Tree_node<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> >,void *> * __cdecl std::_Tree<class std::_Tmap_traits<int,class glslang::TVector<class glslang::TIntermConstantUnion const *>,struct std::less<int>,class glslang::pool_allocator<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> > >,0> >::_Copy_nodes<struct std::_Tree<class std::_Tmap_traits<int,class glslang::TVector<class glslang::TIntermConstantUnion const *>,struct std::less<int>,class glslang::pool_allocator<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> > >,0> >::_Copy_tag>(struct std::_Tree_node<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> >,void *> *,struct std::_Tree_node<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> >,void *> *,struct std::_Tree<class std::_Tmap_traits<int,class glslang::TVector<class glslang::TIntermConstantUnion const *>,struct std::less<int>,class glslang::pool_allocator<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> > >,0> >::_Copy_tag)" (??$_Copy_nodes@U_Copy_tag@?$_Tree@V?$_Tmap_traits@HV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@U?$less@H@std@@V?$pool_allocator@U?$pair@$$CBHV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@@std@@@2@$0A@@std@@@std@@@?$_Tree@V?$_Tmap_traits@HV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@U?$less@H@std@@V?$pool_allocator@U?$pair@$$CBHV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@@std@@@2@$0A@@std@@@std@@IEAAPEAU?$_Tree_node@U?$pair@$$CBHV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@@std@@PEAX@1@PEAU21@0U_Copy_tag@01@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "class glslang::TPoolAllocator & __cdecl glslang::GetThreadPoolAllocator(void)" (?GetThreadPoolAllocator@glslang@@YAAEAVTPoolAllocator@1@XZ) 
referenced in function "protected: struct std::_Tree_node<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> >,void *> * __cdecl std::_Tree<class std::_Tmap_traits<int,class glslang::TVector<class glslang::TIntermConstantUnion const *>,struct std::less<int>,class glslang::pool_allocator<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> > >,0> >::_Copy_nodes<struct std::_Tree<class std::_Tmap_traits<int,class glslang::TVector<class glslang::TIntermConstantUnion const *>,struct std::less<int>,class glslang::pool_allocator<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> > >,0> >::_Copy_tag>(struct std::_Tree_node<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> >,void *> *,struct std::_Tree_node<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> >,void *> *,struct std::_Tree<class std::_Tmap_traits<int,class glslang::TVector<class glslang::TIntermConstantUnion const *>,struct std::less<int>,class glslang::pool_allocator<struct std::pair<int const ,class glslang::TVector<class glslang::TIntermConstantUnion const *> > >,0> >::_Copy_tag)" (??$_Copy_nodes@U_Copy_tag@?$_Tree@V?$_Tmap_traits@HV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@U?$less@H@std@@V?$pool_allocator@U?$pair@$$CBHV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@@std@@@2@$0A@@std@@@std@@@?$_Tree@V?$_Tmap_traits@HV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@U?$less@H@std@@V?$pool_allocator@U?$pair@$$CBHV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@@std@@@2@$0A@@std@@@std@@IEAAPEAU?$_Tree_node@U?$pair@$$CBHV?$TVector@PEBVTIntermConstantUnion@glslang@@@glslang@@@std@@PEAX@1@PEAU21@0U_Copy_tag@01@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "int __cdecl glslang::GetKhronosToolId(void)" (?GetKhronosToolId@glslang@@YAHXZ) referenced in function "public: __cdecl `anonymous namespace'::TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int,class glslang::TIntermediate const *,class spv::SpvBuildLogger *,struct glslang::SpvOptions &)" (??0TGlslangToSpvTraverser@?A0x7e21dd2a@@QEAA@IPEBVTIntermediate@glslang@@PEAVSpvBuildLogger@spv@@AEAUSpvOptions@3@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: class glslang::TIntermAggregate * __cdecl glslang::TIntermediate::findLinkerObjects(void)const " (?findLinkerObjects@TIntermediate@glslang@@QEBAPEAVTIntermAggregate@2@XZ) referenced in function "public: virtual bool __cdecl `anonymous namespace'::TGlslangToSpvTraverser::visitAggregate(enum glslang::TVisit,class glslang::TIntermAggregate *)" (?visitAggregate@TGlslangToSpvTraverser@?A0x7e21dd2a@@UEAA_NW4TVisit@glslang@@PEAVTIntermAggregate@4@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: static int __cdecl glslang::TIntermediate::getBaseAlignmentScalar(class glslang::TType const &,int &)" (?getBaseAlignmentScalar@TIntermediate@glslang@@SAHAEBVTType@2@AEAH@Z) referenced in function "public: virtual bool __cdecl `anonymous namespace'::TGlslangToSpvTraverser::visitBinary(enum glslang::TVisit,class glslang::TIntermBinary *)" (?visitBinary@TGlslangToSpvTraverser@?A0x7e21dd2a@@UEAA_NW4TVisit@glslang@@PEAVTIntermBinary@4@@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: static int __cdecl glslang::TIntermediate::getMemberAlignment(class glslang::TType const &,int &,int &,enum glslang::TLayoutPacking,bool)" (?getMemberAlignment@TIntermediate@glslang@@SAHAEBVTType@2@AEAH1W4TLayoutPacking@2@_N@Z) referenced in function "protected: unsigned int __cdecl `anonymous namespace'::TGlslangToSpvTraverser::convertGlslangToSpvType(class glslang::TType const &,enum glslang::TLayoutPacking,class glslang::TQualifier const &,bool,bool)" (?convertGlslangToSpvType@TGlslangToSpvTraverser@?A0x7e21dd2a@@IEAAIAEBVTType@glslang@@W4TLayoutPacking@4@AEBVTQualifier@4@_N3@Z)
          SPIRV.lib(GlslangToSpv.obj) : error LNK2019: unresolved external symbol "public: static bool __cdecl glslang::TIntermediate::improperStraddle(class glslang::TType const &,int,int)" (?improperStraddle@TIntermediate@glslang@@SA_NAEBVTType@2@HH@Z) referenced in function "protected: void __cdecl `anonymous namespace'::TGlslangToSpvTraverser::decorateStructType(class glslang::TType const &,class glslang::TVector<struct glslang::TTypeLoc> const *,enum glslang::TLayoutPacking,class glslang::TQualifier const &,unsigned int)" (?decorateStructType@TGlslangToSpvTraverser@?A0x7e21dd2a@@IEAAXAEBVTType@glslang@@PEBV?$TVector@UTTypeLoc@glslang@@@4@W4TLayoutPacking@4@AEBVTQualifier@4@I@Z)
          D:\Dev\rust-ncnn\target\release\examples\benchmark.exe : fatal error LNK1120: 20 unresolved externals        

This error appears even when adding proper links in build.rs:

    println!("cargo:rustc-link-lib=glslang");
    println!("cargo:rustc-link-lib=SPIRV");
    println!("cargo:rustc-link-lib=OGLCompiler");
    println!("cargo:rustc-link-lib=OSDependent");
tpoisonooo commented 1 year ago

Get it, let me try to fix it.

tpoisonooo commented 1 year ago

And merge this repo. Sorry for missing all github notifications on Sep 30

tpoisonooo commented 1 year ago

And merge this repo. Sorry for missing all github notifications on Sep 30

merged.