Using MSVC 2015
Everything has been going great until I introduced a few new lines of code:
Before:
static tensorflow::SessionOptions MakeSessionOptions() {
tensorflow::SessionOptions options;
tensorflow::ConfigProto* config = &options.config;
auto* device_count = options.config.mutable_device_count();
device_count->insert({ "CPU", 1 });
device_count->insert({ "GPU", 1 });
return options;
}
After
static tensorflow::SessionOptions MakeSessionOptions() {
tensorflow::SessionOptions options;
tensorflow::ConfigProto* config = &options.config;
auto* device_count = options.config.mutable_device_count();
auto* gpu_options = options.config.mutable_gpu_options();
gpu_options->set_allow_growth(true);
gpu_options->set_per_process_gpu_memory_fraction(0.8);
device_count->insert({ "CPU", 1 });
device_count->insert({ "GPU", 1 });
return options;
}
Once the new code is inserted I get the following linking error
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "public: static class tensorflow::GPUOptions * __cdecl google::protobuf::Arena::CreateMessage<class tensorflow::GPUOptions>(class google::protobuf::Arena *)" (??$CreateMessage@VGPUOptions@tensorflow@@@Arena@protobuf@google@@SAPEAVGPUOptions@tensorflow@@PEAV012@@Z) referenced in function "struct tensorflow::SessionOptions __cdecl MakeSessionOptions(void)" (?MakeSessionOptions@@YA?AUSessionOptions@tensorflow@@XZ) rotobotmaskrcnn C:\msys64\home\hodgefamily\dev\openfx_gpu\Support\Plugins\RotobotMaskRCNN\rotobotmaskrcnn.obj 1
So does anybody know what .lib file contains the symbols for google::protobuf::Arena.
I basically followed the contrib cmake instructions for Tensorflow r1.5
here:
https://github.com/tensorflow/tensorflow/blob/r1.5/tensorflow/contrib/cmake/README.md
Where are those symbols hiding?