Hello,
Here’s my simple cpp code that just loads the model. I’m trying to compile this code in Windows 7, VS 2017. I’ve included path to libtorch/include
to C++ include dirs & libtorch/lib
to linker
#define _CRT_SECURE_NO_WARNINGS
#include "torch/script.h"
#include <iostream>
#include <memory>
#include <fstream>
#include <stdint.h>
#include <vector>
typedef unsigned char BYTE;
using namespace std;
int main(int argc, const char* argv[]) {
if (argc != 3) {
std::cerr << "usage: example-app <path-to-exported-script-module> <path-to-bin-file>\n";
return -1;
}
std::shared_ptr<torch::jit::script::Module> module = torch::jit::load(argv[1]);
return 0;
}
I get errors like these:
|Severity|Code|Description|Project|File|Line|Suppression State|
| --- | --- | --- | --- | --- | --- | --- |
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl c10::IValue::~IValue(void)" (__imp_??1IValue@c10@@QEAA@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl c10::IValue::IValue(void)" (__imp_??0IValue@c10@@QEAA@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl c10::IValue::IValue(struct c10::IValue const &)" (__imp_??0IValue@c10@@QEAA@AEBU01@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Error::Error(struct c10::SourceLocation,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_??0Error@c10@@QEAA@USourceLocation@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl c10::Error::Error(class c10::Error const &)" (__imp_??0Error@c10@@QEAA@AEBV01@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl at::Tensor::~Tensor(void)" (__imp_??1Tensor@at@@QEAA@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: __cdecl at::Tensor::Tensor(class at::Tensor const &)" (__imp_??0Tensor@at@@QEAA@AEBV01@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: void __cdecl c10::ThreadPool::workOnTasksUntilCompleted(class c10::intrusive_ptr<struct c10::ivalue::Future,struct c10::detail::intrusive_target_default_null_type<struct c10::ivalue::Future> >)" (__imp_?workOnTasksUntilCompleted@ThreadPool@c10@@QEAAXV?$intrusive_ptr@UFuture@ivalue@c10@@U?$intrusive_target_default_null_type@UFuture@ivalue@c10@@@detail@3@@2@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: virtual __cdecl c10::Error::~Error(void)" (__imp_??1Error@c10@@UEAA@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: struct c10::IValue & __cdecl c10::IValue::operator=(struct c10::IValue const &)& " (__imp_??4IValue@c10@@QEGAAAEAU01@AEBU01@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) public: struct c10::IValue & __cdecl c10::IValue::operator=(struct c10::IValue &&)& " (__imp_??4IValue@c10@@QEGAAAEAU01@$$QEAU01@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.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)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) protected: __cdecl c10::intrusive_ptr_target::intrusive_ptr_target(void)" (__imp_??0intrusive_ptr_target@c10@@IEAA@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.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)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.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)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) protected: virtual __cdecl c10::intrusive_ptr_target::~intrusive_ptr_target(void)" (__imp_??1intrusive_ptr_target@c10@@MEAA@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.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)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.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)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) private: __cdecl caffe2::TypeIdentifier::TypeIdentifier(unsigned short)" (__imp_??0TypeIdentifier@caffe2@@AEAA@G@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) private: virtual void __cdecl c10::intrusive_ptr_target::release_resources(void)" (__imp_?release_resources@intrusive_ptr_target@c10@@EEAAXXZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) class std::shared_ptr<struct torch::jit::script::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>)" (__imp_?load@jit@torch@@YA?AV?$shared_ptr@UModule@script@jit@torch@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@V?$optional@UDevice@c10@@@c10@@@Z)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK2001|unresolved external symbol "__declspec(dllimport) class c10::ThreadPool & __cdecl c10::global_work_queue(void)" (__imp_?global_work_queue@c10@@YAAEAVThreadPool@1@XZ)|pytorch_cpp_test|D:\User\pytorch_cpp_test\pytorch_cpp_test\pytorch_cpp_test.obj|1||
|Error|LNK1120|22 unresolved externals|pytorch_cpp_test|D:\User\pytorch_cpp_test\x64\Release\pytorch_cpp_test.exe|1||
Any help would be greatly appreciated. Thanks in advance!