0

我已经用 bazel 成功构建了 tensorflow(v1.14.0) c++。我可以用 g++ 构建 tensorflow 库。

我想在此代码中包含其他库(例如 json)。所以我想知道如何用cmake构建下面的代码。

如何编写 CMakeLists.txt?

我的目录如下。

在此处输入图像描述

<test.cpp代码>

#include "tensorflow/core/public/session.h
#include "tensorflow/core/platform/env.h
#include <iostream>
#include <chrono>

#include <chrono>
#include <stream>
#include <string>
#include <vector>
#include <stream>

#include <stream>
#include <list>
#include <memory>

using namespace std;
using namespace chrono;
using namespace tensorflow;

int main(int argc, char* argv[]) {

  // Initialize a tensorflow session
  cout << "start initalize session" << "\n";
  Session* session;
  Status status = NewSession(SessionOptions(), &session);
  if (!status.ok()) {
    cout << status.ToString() << "\n";
    return 1;
  }
  ...

<g++ 命令>

g++ -std=c++11 -Wl,-rpath=lib -Iinclude -Llib -ltensorflow_framework test.cpp -ltensorflow_cc -ltensorflow_framework -o exec
4

2 回答 2

0

要创建可用作 CMake 构建脚本的纯文本文件,请执行以下操作:

从 IDE 左侧打开 Project 窗格,然后从下拉菜单中选择 Project 视图。右键单击模块的根目录,然后选择新建 > 文件。

注意:您可以在任何您想要的位置创建构建脚本。但是,在配置构建脚本时,本地源文件和库的路径与构建脚本的位置相关。

输入“CMakeLists.txt”作为文件名,然后单击确定。

要将源文件或库添加到 CMake 构建脚本,请使用 add_library():

add_library(...)

# Specifies a path to native header files.
include_directories(src/main/cpp/include/)

CMake 用于命名库文件的约定如下:

liblibrary-name.so

这是官方文档的链接。

于 2020-12-14T08:30:01.833 回答
0
cmake_minimum_required(VERSION 3.16)
project(PROJECT_NAME)
find_library(TENSORFLOW_LIB tensorflow HINT <path>/lib)

set(CMAKE_CXX_STANDARD 14)

add_executable(${PROJECT_NAME} main.cpp)

target_include_directories(${PROJECT_NAME} PRIVATE <path>/include)

target_link_libraries (${PROJECT_NAME} "${TENSORFLOW_LIB}" -ltensorflow)
于 2021-07-06T07:24:23.430 回答