You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写适配LibTensorFlow的CMakeLists.txt构建配置文件

问题原因

当前CMake配置存在3个核心问题,直接导致编译失败:

  • 未配置LibTensorFlow头文件包含目录,编译器无法找到tensorflow/c/c_api.h,这是本次报错的直接原因。手动g++编译时通过-I${path_libtf}/include参数指定了头文件路径,但现有CMake规则没有对应配置
  • find_library写死了本机绝对路径,项目迁移存放目录后会直接失效
  • 未配置运行时动态库搜索路径,且漏链libtensorflow_framework.so依赖,即使解决头文件问题,编译完成后运行时也会报动态库找不到的错误
修改方案

根目录CMakeLists.txt

替换为以下内容,统一定义LibTensorFlow路径,配置全局编译、运行时规则:

cmake_minimum_required(VERSION 3.11)

project(
  SampleLibTensorFlow
  VERSION 0.1
  DESCRIPTION "Sample code for LibTensorFlow"
  LANGUAGES CXX)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

# 定义LibTensorFlow相对路径,适配任意项目存放位置
set(LIBTF_ROOT ${PROJECT_SOURCE_DIR}/lib_ext/libtensorflow_cpu)
set(LIBTF_INCLUDE_DIR ${LIBTF_ROOT}/include)
set(LIBTF_LIB_DIR ${LIBTF_ROOT}/lib)

# 配置RPATH,运行时无需手动设置LD_LIBRARY_PATH即可找到动态库
set(CMAKE_BUILD_RPATH ${LIBTF_LIB_DIR})

add_subdirectory(app)

app目录下的CMakeLists.txt

替换为以下内容,补全头文件包含规则,正确链接依赖库:

file(GLOB_RECURSE SRC_FILES CONFIGURE_DEPENDS
  ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)

add_executable(program ${SRC_FILES})

# 添加头文件搜索路径
target_include_directories(program PRIVATE ${LIBTF_INCLUDE_DIR})

# 查找所需的两个TensorFlow动态库
find_library(TF_CORE_LIB NAMES tensorflow HINTS ${LIBTF_LIB_DIR} REQUIRED)
find_library(TF_FW_LIB NAMES tensorflow_framework HINTS ${LIBTF_LIB_DIR} REQUIRED)

# 链接依赖库
target_link_libraries(program PRIVATE ${TF_CORE_LIB} ${TF_FW_LIB})
构建验证

在项目根目录执行以下命令即可完成构建运行:

cd build
rm -rf *
cmake ..
make -j8
./bin/program

执行成功后终端会输出当前LibTensorFlow的版本号,例如LibTensorFlow Version: 2.8.0。

内容的提问来源于stack exchange,提问作者Vujadeyoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 06:00:58