Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with building Libtorch with /MTd in Windows #46318

Closed
Coderx7 opened this issue Oct 14, 2020 · 11 comments
Closed

Issues with building Libtorch with /MTd in Windows #46318

Coderx7 opened this issue Oct 14, 2020 · 11 comments
Assignees
Labels
module: build Build system issues module: windows Windows support for PyTorch triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module

Comments

@Coderx7
Copy link
Contributor

Coderx7 commented Oct 14, 2020

🐛 Bug

DLLs cant be built as Debug configuration with /MTd under windows.
Creating staticly built libs under windows is also problamatic. and generates wierd linker issues.
@peterjc123 kindly suggested to build static libs this way :

cd %PYTORCH_ROOT%
set BUILD_SHARED_LIBS=OFF
for /f "usebackq tokens=*" %i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version [15^,16^) -products * -latest -property installationPath`) do call "%i\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.27
set CL=/DFBGEMM_STATIC#1
python tools\build_libtorch.py

This results in the following errors :

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::clamp(class at::Tensor const &,class c10::optional<class c10::Scalar>,class c10::optional<class c10::Scalar>)" (__imp_?clamp@at@@YA?AVTensor@1@AEBV21@V?$optional@VScalar@c10@@@c10@@1@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Context & __cdecl at::globalContext(void)" (__imp_?globalContext@at@@YAAEAVContext@1@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::acos(class at::Tensor const &)" (__imp_?acos@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::dot(class at::Tensor const &,class at::Tensor const &)" (__imp_?dot@at@@YA?AVTensor@1@AEBV21@0@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::squeeze(class at::Tensor const &,__int64)" (__imp_?squeeze@at@@YA?AVTensor@1@AEBV21@_J@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class std::vector<__int64,class std::allocator<__int64> > __cdecl at::detail::defaultStrides(class c10::ArrayRef<__int64>)" (__imp_?defaultStrides@detail@at@@YA?AV?$vector@_JV?$allocator@_J@std@@@std@@V?$ArrayRef@_J@c10@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) unsigned __int64 __cdecl at::detail::computeStorageNbytes(class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,unsigned __int64)" (__imp_?computeStorageNbytes@detail@at@@YA_KV?$ArrayRef@_J@c10@@0_K@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::scalar_tensor(class c10::Scalar,struct c10::TensorOptions const &)" (__imp_?scalar_tensor@at@@YA?AVTensor@1@VScalar@c10@@AEBUTensorOptions@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::frobenius_norm(class at::Tensor const &)" (__imp_?frobenius_norm@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::native::tensor(class c10::ArrayRef<float>,struct c10::TensorOptions const &)" (__imp_?tensor@native@at@@YA?AVTensor@2@V?$ArrayRef@M@c10@@AEBUTensorOptions@5@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::empty(class c10::ArrayRef<__int64>,struct c10::TensorOptions const &,class c10::optional<enum c10::MemoryFormat>)" (__imp_?empty@at@@YA?AVTensor@1@V?$ArrayRef@_J@c10@@AEBUTensorOptions@4@V?$optional@W4MemoryFormat@c10@@@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl c10::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,struct c10::Half const &)" (__imp_??6c10@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV12@AEBUHalf@0@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) struct torch::jit::Module __cdecl torch::jit::load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class c10::optional<struct c10::Device>,class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > &)" (__imp_?load@jit@torch@@YA?AUModule@12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$optional@UDevice@c10@@@c10@@AEAV?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@5@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: void __cdecl torch::serialize::InputArchive::load_from(class std::basic_istream<char,struct std::char_traits<char> > &,class c10::optional<struct c10::Device>)" (__imp_?load_from@InputArchive@serialize@torch@@QEAAXAEAV?$basic_istream@DU?$char_traits@D@std@@@std@@V?$optional@UDevice@c10@@@c10@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: void __cdecl torch::serialize::InputArchive::read(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class at::Tensor &,bool)" (__imp_?read@InputArchive@serialize@torch@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAVTensor@at@@_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::serialize::InputArchive::InputArchive(void)" (__imp_??0InputArchive@serialize@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: void __cdecl torch::serialize::OutputArchive::save_to(class std::basic_ostream<char,struct std::char_traits<char> > &)" (__imp_?save_to@OutputArchive@serialize@torch@@QEAAXAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: void __cdecl torch::serialize::OutputArchive::write(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class at::Tensor const &,bool)" (__imp_?write@OutputArchive@serialize@torch@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBVTensor@at@@_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::serialize::OutputArchive::OutputArchive(class std::shared_ptr<struct torch::jit::CompilationUnit>)" (__imp_??0OutputArchive@serialize@torch@@QEAA@V?$shared_ptr@UCompilationUnit@jit@torch@@@std@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::jit::CompilationUnit::CompilationUnit(void)" (__imp_??0CompilationUnit@jit@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::jit::CompilationUnit::~CompilationUnit(void)" (__imp_??1CompilationUnit@jit@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::serialize::InputArchive::~InputArchive(void)" (__imp_??1InputArchive@serialize@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::serialize::OutputArchive::~OutputArchive(void)" (__imp_??1OutputArchive@serialize@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct torch::jit::Module & __cdecl torch::jit::Module::operator=(struct torch::jit::Module const &)" (__imp_??4Module@jit@torch@@QEAAAEAU012@AEBU012@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct c10::IValue __cdecl torch::jit::Module::forward(class std::vector<struct c10::IValue,class std::allocator<struct c10::IValue> >)" (__imp_?forward@Module@jit@torch@@QEAA?AUIValue@c10@@V?$vector@UIValue@c10@@V?$allocator@UIValue@c10@@@std@@@std@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::jit::Module::~Module(void)" (__imp_??1Module@jit@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::jit::Module::Module(void)" (__imp_??0Module@jit@torch@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual __cdecl torch::autograd::AutogradMeta::~AutogradMeta(void)" (__imp_??1AutogradMeta@autograd@torch@@UEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::autograd::AutogradMeta::AutogradMeta(struct c10::TensorImpl *,bool,struct torch::autograd::Edge)" (__imp_??0AutogradMeta@autograd@torch@@QEAA@PEAUTensorImpl@c10@@_NUEdge@12@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual class at::Tensor const & __cdecl torch::autograd::AutogradMeta::grad(void)const " (__imp_?grad@AutogradMeta@autograd@torch@@UEBAAEBVTensor@at@@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual class at::Tensor & __cdecl torch::autograd::AutogradMeta::grad(void)" (__imp_?grad@AutogradMeta@autograd@torch@@UEAAAEAVTensor@at@@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual bool __cdecl torch::autograd::AutogradMeta::requires_grad(void)const " (__imp_?requires_grad@AutogradMeta@autograd@torch@@UEBA_NXZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl torch::autograd::AutogradMeta::set_requires_grad(bool,struct c10::TensorImpl *)" (__imp_?set_requires_grad@AutogradMeta@autograd@torch@@UEAAX_NPEAUTensorImpl@c10@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::NoGradGuard::~NoGradGuard(void)" (__imp_??1NoGradGuard@at@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::NoGradGuard::NoGradGuard(void)" (__imp_??0NoGradGuard@at@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct c10::StrongTypePtr & __cdecl c10::StrongTypePtr::operator=(struct c10::StrongTypePtr &&)" (__imp_??4StrongTypePtr@c10@@QEAAAEAU01@$$QEAU01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct c10::StrongTypePtr & __cdecl c10::StrongTypePtr::operator=(struct c10::StrongTypePtr const &)" (__imp_??4StrongTypePtr@c10@@QEAAAEAU01@AEBU01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::StrongTypePtr::StrongTypePtr(struct c10::StrongTypePtr const &)" (__imp_??0StrongTypePtr@c10@@QEAA@AEBU01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::ivalue::Future::FutureError::FutureError(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &&)" (__imp_??0FutureError@Future@ivalue@c10@@QEAA@$$QEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor __cdecl at::Tensor::operator[](__int64)const " (__imp_??ATensor@at@@QEBA?AV01@_J@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::AutoNonVariableTypeMode::~AutoNonVariableTypeMode(void)" (__imp_??1AutoNonVariableTypeMode@at@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct c10::Device __cdecl at::Context::getDeviceFromPtr(void *,enum c10::DeviceType)" (__imp_?getDeviceFromPtr@Context@at@@QEAA?AUDevice@c10@@PEAXW4DeviceType@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::AutoNonVariableTypeMode::AutoNonVariableTypeMode(bool)" (__imp_??0AutoNonVariableTypeMode@at@@QEAA@_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor & __cdecl at::Tensor::operator=(class at::Tensor const &)& " (__imp_??4Tensor@at@@QEGAAAEAV01@AEBV01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class c10::intrusive_ptr<struct c10::TensorImpl,struct c10::UndefinedTensorImpl> const & __cdecl at::Tensor::getIntrusivePtr(void)const " (__imp_?getIntrusivePtr@Tensor@at@@QEBAAEBV?$intrusive_ptr@UTensorImpl@c10@@UUndefinedTensorImpl@2@@c10@@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: bool __cdecl c10::TensorImpl::unique_version(void)const " (__imp_?unique_version@TensorImpl@c10@@QEBA_NXZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: bool __cdecl c10::TensorOptions::requires_grad(void)const " (__imp_?requires_grad@TensorOptions@c10@@QEBA_NXZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: bool __cdecl c10::TensorOptions::has_dtype(void)const " (__imp_?has_dtype@TensorOptions@c10@@QEBA_NXZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::TensorOptions::TensorOptions(enum c10::ScalarType)" (__imp_??0TensorOptions@c10@@QEAA@W4ScalarType@1@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Storage::Storage(struct c10::Storage::use_byte_size_t,unsigned __int64,class c10::DataPtr,struct c10::Allocator *,bool)" (__imp_??0Storage@c10@@QEAA@Uuse_byte_size_t@01@_KVDataPtr@1@PEAUAllocator@1@_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: class c10::intrusive_ptr_target & __cdecl c10::intrusive_ptr_target::operator=(class c10::intrusive_ptr_target const &)" (__imp_??4intrusive_ptr_target@c10@@IEAAAEAV01@AEBV01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: __cdecl c10::intrusive_ptr_target::intrusive_ptr_target(class c10::intrusive_ptr_target const &)" (__imp_??0intrusive_ptr_target@c10@@IEAA@AEBV01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: class c10::intrusive_ptr_target & __cdecl c10::intrusive_ptr_target::operator=(class c10::intrusive_ptr_target &&)" (__imp_??4intrusive_ptr_target@c10@@IEAAAEAV01@$$QEAV01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: __cdecl c10::intrusive_ptr_target::intrusive_ptr_target(class c10::intrusive_ptr_target &&)" (__imp_??0intrusive_ptr_target@c10@@IEAA@$$QEAV01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Scalar::Scalar(int)" (__imp_??0Scalar@c10@@QEAA@H@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Scalar::Scalar(void)" (__imp_??0Scalar@c10@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\FV.lib(FV.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class std::tuple<class at::Tensor,class at::Tensor,class at::Tensor> __cdecl at::svd(class at::Tensor const &,bool,bool)" (__imp_?svd@at@@YA?AV?$tuple@VTensor@at@@V12@V12@@std@@AEBVTensor@1@_N1@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::true_divide(class at::Tensor const &,class c10::Scalar)" (__imp_?true_divide@at@@YA?AVTensor@1@AEBV21@VScalar@c10@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::zeros(class c10::ArrayRef<__int64>,struct c10::TensorOptions const &)" (__imp_?zeros@at@@YA?AVTensor@1@V?$ArrayRef@_J@c10@@AEBUTensorOptions@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor & __cdecl at::Tensor::index_put_(class std::initializer_list<struct at::indexing::TensorIndex>,class at::Tensor const &)" (__imp_?index_put_@Tensor@at@@QEAAAEAV12@V?$initializer_list@UTensorIndex@indexing@at@@@std@@AEBV12@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor & __cdecl at::Tensor::index_put_(class std::initializer_list<struct at::indexing::TensorIndex>,class c10::Scalar)" (__imp_?index_put_@Tensor@at@@QEAAAEAV12@V?$initializer_list@UTensorIndex@indexing@at@@@std@@VScalar@c10@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor __cdecl at::Tensor::index(class std::initializer_list<struct at::indexing::TensorIndex>)const " (__imp_?index@Tensor@at@@QEBA?AV12@V?$initializer_list@UTensorIndex@indexing@at@@@std@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::min(class at::Tensor const &,class at::Tensor const &)" (__imp_?min@at@@YA?AVTensor@1@AEBV21@0@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::min(class at::Tensor const &)" (__imp_?min@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::empty_like(class at::Tensor const &,struct c10::TensorOptions const &,class c10::optional<enum c10::MemoryFormat>)" (__imp_?empty_like@at@@YA?AVTensor@1@AEBV21@AEBUTensorOptions@c10@@V?$optional@W4MemoryFormat@c10@@@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::zeros_like(class at::Tensor const &,struct c10::TensorOptions const &,class c10::optional<enum c10::MemoryFormat>)" (__imp_?zeros_like@at@@YA?AVTensor@1@AEBV21@AEBUTensorOptions@c10@@V?$optional@W4MemoryFormat@c10@@@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class std::tuple<class at::Tensor,class at::Tensor> __cdecl at::lstsq(class at::Tensor const &,class at::Tensor const &)" (__imp_?lstsq@at@@YA?AV?$tuple@VTensor@at@@V12@@std@@AEBVTensor@1@0@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::diag(class at::Tensor const &,__int64)" (__imp_?diag@at@@YA?AVTensor@1@AEBV21@_J@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::argsort(class at::Tensor const &,__int64,bool)" (__imp_?argsort@at@@YA?AVTensor@1@AEBV21@_J_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::matrix_rank(class at::Tensor const &,bool)" (__imp_?matrix_rank@at@@YA?AVTensor@1@AEBV21@_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::ones(class c10::ArrayRef<__int64>,struct c10::TensorOptions const &)" (__imp_?ones@at@@YA?AVTensor@1@V?$ArrayRef@_J@c10@@AEBUTensorOptions@4@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::stack(class c10::ArrayRef<class at::Tensor>,__int64)" (__imp_?stack@at@@YA?AVTensor@1@V?$ArrayRef@VTensor@at@@@c10@@_J@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::max(class at::Tensor const &,class at::Tensor const &)" (__imp_?max@at@@YA?AVTensor@1@AEBV21@0@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::max(class at::Tensor const &)" (__imp_?max@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::eye(__int64,struct c10::TensorOptions const &)" (__imp_?eye@at@@YA?AVTensor@1@_JAEBUTensorOptions@c10@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::cat(class c10::ArrayRef<class at::Tensor>,__int64)" (__imp_?cat@at@@YA?AVTensor@1@V?$ArrayRef@VTensor@at@@@c10@@_J@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::round(class at::Tensor const &)" (__imp_?round@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class std::vector<class at::Tensor,class std::allocator<class at::Tensor> > __cdecl at::where(class at::Tensor const &)" (__imp_?where@at@@YA?AV?$vector@VTensor@at@@V?$allocator@VTensor@at@@@std@@@std@@AEBVTensor@1@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::det(class at::Tensor const &)" (__imp_?det@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::native::tensor(class c10::ArrayRef<__int64>,struct c10::TensorOptions const &)" (__imp_?tensor@native@at@@YA?AVTensor@2@V?$ArrayRef@_J@c10@@AEBUTensorOptions@5@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: void __cdecl torch::jit::Module::to(struct c10::Device,bool)" (__imp_?to@Module@jit@torch@@QEAAXUDevice@c10@@_N@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
...

Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor & __cdecl at::Tensor::operator+=(class at::Tensor const &)" (__imp_??YTensor@at@@QEAAAEAV01@AEBV01@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::indexing::TensorIndex::~TensorIndex(void)" (__imp_??1TensorIndex@indexing@at@@QEAA@XZ)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::indexing::TensorIndex::TensorIndex(class at::Tensor)" (__imp_??0TensorIndex@indexing@at@@QEAA@VTensor@2@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::indexing::TensorIndex::TensorIndex(struct at::indexing::Slice)" (__imp_??0TensorIndex@indexing@at@@QEAA@USlice@12@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::indexing::TensorIndex::TensorIndex(int)" (__imp_??0TensorIndex@indexing@at@@QEAA@H@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::indexing::TensorIndex::TensorIndex(__int64)" (__imp_??0TensorIndex@indexing@at@@QEAA@_J@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::indexing::Slice::Slice(class c10::optional<__int64>,class c10::optional<__int64>,class c10::optional<__int64>)" (__imp_??0Slice@indexing@at@@QEAA@V?$optional@_J@c10@@00@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::TensorOptions::TensorOptions(enum c10::MemoryFormat)" (__imp_??0TensorOptions@c10@@QEAA@W4MemoryFormat@1@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::TensorOptions::TensorOptions(class caffe2::TypeMeta)" (__imp_??0TensorOptions@c10@@QEAA@VTypeMeta@caffe2@@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Scalar::Scalar(float)" (__imp_??0Scalar@c10@@QEAA@M@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Detector.lib(Detector.obj)	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::sigmoid(class at::Tensor const &)" (__imp_?sigmoid@at@@YA?AVTensor@1@AEBV21@@Z)	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\FV_Test_Lib\Blinker.lib(Blinker.obj)	1	
Error	LNK1120	96 unresolved externals	FV_Test_Lib	D:\Codes\fac_ver\cpp\port\LibtorchPort\x64\Release\FV_Test_Lib.exe	1	

Creating a Debug configuration with /MTd using normal cmake (i.e. generating visual studio solution from cmake by doing this and then making all libs build as /MTd ) also results in the very same linker issues.
Building with /MT for release configuration works though but for debug it fails.
Building with /MD and /MDd work just fine both for dynamic and static libs.
Trying something like cmake -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>" .. didnt work either.

This is an example showing how this fails. The solution is created using cmake and we are building dynamic libs (dlls) :
pytorch_debug_build_failure2

To Reproduce

Steps to reproduce the behavior:

1.Simply try to build a Pytorch 1.6 branch Debug configurations with /MTd under windows (both static and dynamic ones)

Expected behavior

Should be able to build properly without any issues.

Environment

Please copy and paste the output from our
environment collection script
(or fill out the checklist below manually).

You can get the script and run it with:

Collecting environment information...
PyTorch version: 1.6.0+cpu
Is debug build: No
CUDA used to build PyTorch: None

OS: Microsoft Windows 10 Enterprise
GCC version: Could not collect
CMake version: version 3.17.2

Python version: 3.7
Is CUDA available: No
CUDA runtime version: No CUDA
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA

Versions of relevant libraries:
[pip] facenet-pytorch==2.2.9
[pip] numpy==1.18.1
[pip] numpydoc==0.9.1
[pip] torch==1.6.0+cpu
[pip] torch-pruning==0.2.2
[pip] torchfile==0.1.0
[pip] torchnet==0.0.4
[pip] torchprof==1.0.0
[pip] torchscope==0.1.0
[pip] torchstat==0.0.7
[pip] torchvision==0.7.0+cpu
[conda] blas                      1.0                         mkl
[conda] cudatoolkit               10.2.89              h74a9793_1
[conda] facenet-pytorch           2.2.9                    pypi_0    pypi
[conda] mkl                       2019.0                   pypi_0    pypi
[conda] mkl-include               2020.2                      256
[conda] mkl-service               2.3.0            py37hb782905_0
[conda] mkl_fft                   1.0.15           py37h14836fe_0
[conda] mkl_random                1.1.1            py37h47e9c7a_0
[conda] numpy                     1.18.1           py37h93ca92e_0
[conda] numpy-base                1.18.1           py37hc3f5095_1
[conda] numpydoc                  0.9.1                      py_0
[conda] torch                     1.6.0+cpu                pypi_0    pypi
[conda] torch-pruning             0.2.2                    pypi_0    pypi
[conda] torchfile                 0.1.0                    pypi_0    pypi
[conda] torchnet                  0.0.4                    pypi_0    pypi
[conda] torchprof                 1.0.0                    pypi_0    pypi
[conda] torchscope                0.1.0                    pypi_0    pypi
[conda] torchstat                 0.0.7                    pypi_0    pypi
[conda] torchvision               0.5.0+cpu                pypi_0    pypi

Additional context

please note that Pytorch 1.6 needs to be patched when using Visual C++. See oneapi-src/oneDNN#812 .(This is fixed in master though).

cc @malfet @seemethere @walterddr @peterjc123 @maxluk @nbcsm @guyang3532 @gunandrose4u @smartcat2010 @mszhanyi

@heitorschueroff heitorschueroff added module: windows Windows support for PyTorch triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module module: build Build system issues labels Oct 14, 2020
@peterjc123
Copy link
Collaborator

Please try the following commands.

cd %PYTORCH_ROOT%
set BUILD_SHARED_LIBS=OFF
set DEBUG=1
for /f "usebackq tokens=*" %i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version [15^,16^) -products * -latest -property installationPath`) do call "%i\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.27
set CL=/DFBGEMM_STATIC#1
python tools\build_libtorch.py

@Coderx7
Copy link
Contributor Author

Coderx7 commented Oct 18, 2020

@peterjc123 : Thanks but I'm getting this error :

 error LNK2005: "int FLAGS_v" (?FLAGS_v@@3HA) already defined in c10.lib(Logging.cpp.obj)

Full message looks like this:

[774/2781] Linking CXX executable bin\c10_intrusive_ptr_benchmark.exe
FAILED: bin/c10_intrusive_ptr_benchmark.exe
cmd.exe /C "cd . && C:\Users\Master\Anaconda3\Library\bin\cmake.exe -E vs_link_exe --intdir=c10\benchmark\CMakeFiles\c10_intrusive_ptr_benchmark.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\mt.exe --manifests  -- C:\PROGRA~2\MIB055~1\2019\ENTERP~1\VC\Tools\MSVC\1425~1.286\bin\Hostx64\x64\link.exe /nologo c10\benchmark\CMakeFiles\c10_intrusive_ptr_benchmark.dir\intrusive_ptr_benchmark.cpp.obj  /out:bin\c10_intrusive_ptr_benchmark.exe /implib:lib\c10_intrusive_ptr_benchmark.lib /pdb:bin\c10_intrusive_ptr_benchmark.pdb /version:0.0 /machine:x64 /ignore:4049 /ignore:4217 /debug /INCREMENTAL:NO /subsystem:console  lib\c10.lib  lib\benchmark.lib  Shlwapi.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK: command "C:\PROGRA~2\MIB055~1\2019\ENTERP~1\VC\Tools\MSVC\1425~1.286\bin\Hostx64\x64\link.exe /nologo c10\benchmark\CMakeFiles\c10_intrusive_ptr_benchmark.dir\intrusive_ptr_benchmark.cpp.obj /out:bin\c10_intrusive_ptr_benchmark.exe /implib:lib\c10_intrusive_ptr_benchmark.lib /pdb:bin\c10_intrusive_ptr_benchmark.pdb /version:0.0 /machine:x64 /ignore:4049 /ignore:4217 /debug /INCREMENTAL:NO /subsystem:console lib\c10.lib lib\benchmark.lib Shlwapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:bin\c10_intrusive_ptr_benchmark.exe.manifest" failed (exit code 1169) with the following output:
benchmark.lib(benchmark.cc.obj) : error LNK2005: "int FLAGS_v" (?FLAGS_v@@3HA) already defined in c10.lib(Logging.cpp.obj)
bin\c10_intrusive_ptr_benchmark.exe : fatal error LNK1169: one or more multiply defined symbols found
[781/2781] Linking CXX executable bin\c10_ordered_preserving_dict_test.exe
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "tools\build_libtorch.py", line 23, in <module>
    rerun_cmake=True, cmake_only=False, cmake=CMake())
  File "C:\Users\Master\Desktop\PytorchTest\pytorch-1.6.0\tools\build_pytorch_libs.py", line 62, in build_caffe2
    cmake.build(my_env)
  File "C:\Users\Master\Desktop\PytorchTest\pytorch-1.6.0\tools\setup_helpers\cmake.py", line 345, in build
    self.run(build_args, my_env)
  File "C:\Users\Master\Desktop\PytorchTest\pytorch-1.6.0\tools\setup_helpers\cmake.py", line 141, in run
    check_call(command, cwd=self.build_dir, env=env)
  File "C:\Users\Master\Anaconda3\Lib\subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'install', '--config', 'Debug', '--', '-j', '8']' returned non-zero exit status 1.

whats wrong here?

@Coderx7
Copy link
Contributor Author

Coderx7 commented Oct 19, 2020

Googling the error leads to this : #39848 as well. I'm not sure how to go about this. Seems the static libs werent successful there either.
@peterjc123 Could you kindly elaborate more on this, and tell me how you fixed the isse on #39848 ?

Update:
I noticed setting Debug=1 is the casuse since doing Debug=0 doesnt result in the afformentioned error.
Anyway, this doesnt solve the issue, as its literally whats being tested in advance as noted in the first post. Unless the Debug=1 bug is somehow fixed and we can test it
Update 2:
I noticed, by setting Debug=0, it still executes the cmake to build the dbug config, however, at the end, the relase install is initiated! :

-- Build files have been written to: D:/Codes/pytorch_1.6.0/build
cmake --build . --target install --config Debug -- -j 8
[25/2223] Building RC object third_party\protobuf\cmake\CMakeFiles\protoc.dir\version.rc.res
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation.  All rights reserved.


[2222/2223] Install the project...
-- Install configuration: "Release"

Could this indicate a bug in the cmake itself? it seems, setting Debug or Relase to 0 or 1 doesnt change the way cmake config is built. in either case, Debug or Release is used if its set with either value (i.e. if Debug=0/1, the debug config will be issued, and if Rlease=0/1, release config will be issued by cmake.
I'm currently trying with Release=0 to see how it goes.
Update 3:
it seems, the install configuration is always setto release regardless of setting Release=0/1 or Debug=0!
it (i.e. Release=0) also results in the very same linker issues as previously stated:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::scalar_tensor(class c10::Scalar,struct c10::TensorOptions const &)" (__imp_?scalar_tensor@at@@YA?AVTensor@1@VScalar@c10@@AEBUTensorOptions@4@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class at::Tensor __cdecl at::empty(class c10::ArrayRef<__int64>,struct c10::TensorOptions const &,class c10::optional<enum c10::MemoryFormat>)" (__imp_?empty@at@@YA?AVTensor@1@V?$ArrayRef@_J@c10@@AEBUTensorOptions@4@V?$optional@W4MemoryFormat@c10@@@4@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl c10::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,struct c10::Half const &)" (__imp_??6c10@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV12@AEBUHalf@0@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual __cdecl torch::autograd::AutogradMeta::~AutogradMeta(void)" (__imp_??1AutogradMeta@autograd@torch@@UEAA@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl torch::autograd::AutogradMeta::AutogradMeta(struct c10::TensorImpl *,bool,struct torch::autograd::Edge)" (__imp_??0AutogradMeta@autograd@torch@@QEAA@PEAUTensorImpl@c10@@_NUEdge@12@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual class at::Tensor const & __cdecl torch::autograd::AutogradMeta::grad(void)const " (__imp_?grad@AutogradMeta@autograd@torch@@UEBAAEBVTensor@at@@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual class at::Tensor & __cdecl torch::autograd::AutogradMeta::grad(void)" (__imp_?grad@AutogradMeta@autograd@torch@@UEAAAEAVTensor@at@@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual bool __cdecl torch::autograd::AutogradMeta::requires_grad(void)const " (__imp_?requires_grad@AutogradMeta@autograd@torch@@UEBA_NXZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl torch::autograd::AutogradMeta::set_requires_grad(bool,struct c10::TensorImpl *)" (__imp_?set_requires_grad@AutogradMeta@autograd@torch@@UEAAX_NPEAUTensorImpl@c10@@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::NoGradGuard::~NoGradGuard(void)" (__imp_??1NoGradGuard@at@@QEAA@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::NoGradGuard::NoGradGuard(void)" (__imp_??0NoGradGuard@at@@QEAA@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct c10::StrongTypePtr & __cdecl c10::StrongTypePtr::operator=(struct c10::StrongTypePtr &&)" (__imp_??4StrongTypePtr@c10@@QEAAAEAU01@$$QEAU01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: struct c10::StrongTypePtr & __cdecl c10::StrongTypePtr::operator=(struct c10::StrongTypePtr const &)" (__imp_??4StrongTypePtr@c10@@QEAAAEAU01@AEBU01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::StrongTypePtr::StrongTypePtr(struct c10::StrongTypePtr const &)" (__imp_??0StrongTypePtr@c10@@QEAA@AEBU01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::ivalue::Future::FutureError::FutureError(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &&)" (__imp_??0FutureError@Future@ivalue@c10@@QEAA@$$QEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class at::Tensor __cdecl at::Tensor::operator[](__int64)const " (__imp_??ATensor@at@@QEBA?AV01@_J@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::AutoNonVariableTypeMode::~AutoNonVariableTypeMode(void)" (__imp_??1AutoNonVariableTypeMode@at@@QEAA@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl at::AutoNonVariableTypeMode::AutoNonVariableTypeMode(bool)" (__imp_??0AutoNonVariableTypeMode@at@@QEAA@_N@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: class c10::intrusive_ptr<struct c10::TensorImpl,struct c10::UndefinedTensorImpl> const & __cdecl at::Tensor::getIntrusivePtr(void)const " (__imp_?getIntrusivePtr@Tensor@at@@QEBAAEBV?$intrusive_ptr@UTensorImpl@c10@@UUndefinedTensorImpl@2@@c10@@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: bool __cdecl c10::TensorImpl::unique_version(void)const " (__imp_?unique_version@TensorImpl@c10@@QEBA_NXZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: bool __cdecl c10::TensorOptions::requires_grad(void)const " (__imp_?requires_grad@TensorOptions@c10@@QEBA_NXZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: bool __cdecl c10::TensorOptions::has_dtype(void)const " (__imp_?has_dtype@TensorOptions@c10@@QEBA_NXZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: class c10::intrusive_ptr_target & __cdecl c10::intrusive_ptr_target::operator=(class c10::intrusive_ptr_target const &)" (__imp_??4intrusive_ptr_target@c10@@IEAAAEAV01@AEBV01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: __cdecl c10::intrusive_ptr_target::intrusive_ptr_target(class c10::intrusive_ptr_target const &)" (__imp_??0intrusive_ptr_target@c10@@IEAA@AEBV01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: class c10::intrusive_ptr_target & __cdecl c10::intrusive_ptr_target::operator=(class c10::intrusive_ptr_target &&)" (__imp_??4intrusive_ptr_target@c10@@IEAAAEAV01@$$QEAV01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) protected: __cdecl c10::intrusive_ptr_target::intrusive_ptr_target(class c10::intrusive_ptr_target &&)" (__imp_??0intrusive_ptr_target@c10@@IEAA@$$QEAV01@@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Scalar::Scalar(int)" (__imp_??0Scalar@c10@@QEAA@H@Z)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK2001	unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Scalar::Scalar(void)" (__imp_??0Scalar@c10@@QEAA@XZ)	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\Test_dummy\Test_dummy.obj	1	
Error	LNK1120	28 unresolved externals	Test_dummy	D:\Codes\fac_ver\cpp\port\LibtorchPort\x64\Release\Test_dummy.exe	1	

@Coderx7
Copy link
Contributor Author

Coderx7 commented Oct 24, 2020

@peterjc123 I could really appreciate a feedback on this.

@peterjc123
Copy link
Collaborator

peterjc123 commented Oct 28, 2020

@Coderx7 I guess you might try the RelWithDebInfo builds by set REL_WITH_DEB_INFO=1 instead of set DEBUG=1. As far as I know, debug static builds won't work because we couldn't package all the dependencies into a single static library due to size limitation (4GB).

@Coderx7
Copy link
Contributor Author

Coderx7 commented Oct 28, 2020

@peterjc123 Thanks a lot will test it right now.
Also I really dont need to build statically if thats a problem, just like release, the /MT dll (dynamically built ) is fine with me as well.

@Coderx7
Copy link
Contributor Author

Coderx7 commented Oct 28, 2020

@peterjc123 Sadly this failed as well with the torch_cpu.lib : fatal error LNK1248: image size (1000642A9) exceeds maximum allowable size (FFFFFFFF) error (I guess this is what you were talking about earlier?!)

D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorMoreMath.cpp(631) : info C5002: Omp simd loop not vectorized due to reason '1200'
[1094/2228] Building CXX object caffe2\CMakeFiles\torch_cpu.dir\__\aten\src\TH\THTensorEvenMoreMath.cpp.obj
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
D:\Codes\pytorch_1.6.0\aten\src\TH\generic\THTensorEvenMoreMath.cpp(219) : info C5002: Omp simd loop not vectorized due to reason '1200'
[1946/2228] Linking CXX static library lib\torch_cpu.lib
FAILED: lib/torch_cpu.lib
cmd.exe /C "cd . && C:\PROGRA~2\MICROS~4\2019\ENTERP~1\VC\Tools\MSVC\1427~1.291\bin\Hostx64\x64\link.exe /lib /nologo /machine:x64 /ignore:4049 /ignore:4217 /out:lib\torch_cpu.lib @CMakeFiles\torch_cpu.rsp  && cd ."
lib\torch_cpu.lib : fatal error LNK1248: image size (1000642A9) exceeds maximum allowable size (FFFFFFFF)
[1953/2228] Building CXX object caffe2\CMakeFiles\op_registration_test.dir\__\aten\src\ATen\core\op_registration\op_registration_test.cpp.obj
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "tools\build_libtorch.py", line 23, in <module>
    rerun_cmake=True, cmake_only=False, cmake=CMake())
  File "D:\Codes\pytorch_1.6.0\tools\build_pytorch_libs.py", line 62, in build_caffe2
    cmake.build(my_env)
  File "D:\Codes\pytorch_1.6.0\tools\setup_helpers\cmake.py", line 345, in build
    self.run(build_args, my_env)
  File "D:\Codes\pytorch_1.6.0\tools\setup_helpers\cmake.py", line 141, in run
    check_call(command, cwd=self.build_dir, env=env)
  File "C:\Users\User\Anaconda3\Lib\subprocess.py", line 347, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'install', '--config', 'RelWithDebInfo', '--', '-j', '8']' returned non-zero exit status 1.

Anyway is there a way to ditch the static build and instead just like the dynamic one, build with MT but for debug? clearly this worked for the release dlls. so I guess I should be able to do so with debug as well. whats different here that makes it not work readily?

UPDATE:
I tried set MSVC_Z7_OVERRIDE=OFF, but ultimately faced with out of memory issue when linking :
LINK : fatal error LNK1102: out of memory.

LINK Pass 1: command "C:\PROGRA~2\MICROS~4\2019\ENTERP~1\VC\Tools\MSVC\1427~1.291\bin\Hostx64\x64\link.exe /nologo caffe2\CMakeFiles\data_filler_test.dir\predictor\emulator\data_filler_test.cc.obj /out:bin\data_filler_test.exe /implib:lib\data_filler_test.lib /pdb:bin\data_filler_test.pdb /version:0.0 /machine:x64 /ignore:4049 /ignore:4217 /debug /INCREMENTAL /subsystem:console lib\gtest_main.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/torch.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/torch_cpu.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/caffe2_protos.lib lib\fbgemm.lib lib\cpuinfo.lib lib\clog.lib lib\asmjit.lib lib\foxi_loader.lib C:\Users\User\Anaconda3\Library\lib\openblas.lib lib\dnnl.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/onnx.lib lib\onnx_proto.lib lib\libprotobuf.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/Caffe2_perfkernels_avx.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/Caffe2_perfkernels_avx2.lib lib\c10.lib -WHOLEARCHIVE:D:/Codes/pytorch_1.6.0/build/lib/Caffe2_perfkernels_avx512.lib lib\gtest.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:caffe2\CMakeFiles\data_filler_test.dir/intermediate.manifest caffe2\CMakeFiles\data_filler_test.dir/manifest.res" failed (exit code 1102) with the following output:
   Creating library lib\data_filler_test.lib and object lib\data_filler_test.exp
LINK : fatal error LNK1102: out of memory
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "tools\build_libtorch.py", line 23, in <module>
    rerun_cmake=True, cmake_only=False, cmake=CMake())
  File "D:\Codes\pytorch_1.6.0\tools\build_pytorch_libs.py", line 62, in build_caffe2
    cmake.build(my_env)
  File "D:\Codes\pytorch_1.6.0\tools\setup_helpers\cmake.py", line 345, in build
    self.run(build_args, my_env)
  File "D:\Codes\pytorch_1.6.0\tools\setup_helpers\cmake.py", line 141, in run
    check_call(command, cwd=self.build_dir, env=env)
  File "C:\Users\User\Anaconda3\Lib\subprocess.py", line 347, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'install', '--config', 'RelWithDebInfo', '--', '-j', '8']' returned non-zero exit status 1.

Also I noticed the build was not built as debug as the protobuf libs wherent built for debug (didnt have d in their names)

@Coderx7
Copy link
Contributor Author

Coderx7 commented Nov 21, 2020

Hi @peterjc123 : Should I assume, there is no way to get MTd to work with libtorch?
Thanks a lot in advance.

@peterjc123
Copy link
Collaborator

@Coderx7 I feel sorry about it but the answer is yes for now.

@Coderx7
Copy link
Contributor Author

Coderx7 commented Nov 21, 2020

@peterjc123 Thanks a lot peter. really appreciate your kind help so far. I'm greatful.
Best regards

@iremyux iremyux self-assigned this Jan 5, 2023
@iremyux
Copy link
Collaborator

iremyux commented Jan 17, 2023

Hi @Coderx7 ,

I am closing this issue since the discussion has came to an end. Please feel free to open a new issue if you encounter a bug or have a feature request in the future.

@iremyux iremyux closed this as not planned Won't fix, can't repro, duplicate, stale Jan 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module: build Build system issues module: windows Windows support for PyTorch triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module
Projects
Status: Done
Development

No branches or pull requests

4 participants