我们知道,TensorFlow官网是提供了C语言的函数库,Windows版本、Linux版本的动态库都有提供,所有我们不必自己去编译TensorFlow源码来生成动态库。
TensorFlow官网C语言库
打开TensorFlow官网链接,页面如下
在这个页面下部有各种版本的下载链接
根据自己的需要,我下载Windows版本CPU版的dll库。
下载完成后我们解压这个压缩包得到C语言库的头文件和dll文件,这个动态库是没有lib文件的,因此我们在C++调用dll库是采用动态库动态库调用的方式。
这个TensorFlow c语言库是64位动态库,因此在vs2015中新建64位C++控制台程序,代码如下
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
using namespace std;
int main()
{
/*
动态调用 不需要lib文件
*/
// 运行时加载DLL库
//TensorFlow库为64位dll库
HMODULE module = LoadLibrary(L"tensorflow.dll");
if (module == NULL)
{
cout << "动态加载dll失败!" << endl;
return 1;
}
typedef char*(*TF_VersionFunc)(); // 定义函数指针类型
TF_VersionFunc TF_Version;
// 导出函数地址
TF_Version = (TF_VersionFunc)GetProcAddress(module, "TF_Version");
if (TF_Version == NULL)
{
cout << "动态加载函数失败!" << endl;
return 2;
}
cout << "调用的TensorFlow动态库版本为:"<<TF_Version() << endl;
getchar();
return 0;
}
tensorflow.dll这个文件需要放到x64/Release目录下
程序运行结果如下:
可见,TensorFlow官网上提供的C语言动态库在vs2015中调用成功。