问题
把libonnxruntime从12升级到14,遇到了一个编译问题GetInputName和GetOutputName找不到了
解决方法
原因是1.14中把 GetInputName
改成了 GetInputNameAllocated
, 返回值从char* 变成了AllocatedStringPtr(using Ort::AllocatedStringPtr = typedef std::unique_ptr<char, detail::AllocatedFree>
)。
std::vector<const char*> inputNodeNames; //
std::vector<AllocatedStringPtr> inputNodeNameAllocatedStrings; // <-- newly added
...
auto inputNodesNum = session->GetInputCount();
for (int i = 0; i < inputNodesNum; i++) {
auto input_name = session->GetInputNameAllocated(i, allocator);
inputNodeNameAllocatedStrings.push_back(std::move(input_name));
inputNodeNames.push_back(inputNodeNameAllocatedStrings.back().get());
}
吐槽: 返回值变成unique_ptr这里就有个大坑,暂时没找好方法直接把指针内容取出来。