Mac Ventura 13.6环境下TensorFlow C++开发环境搭建方法咨询
Mac 搭建 TensorFlow C++ 开发环境指南
一、从 TensorFlow 源码编译(最可靠方案)
brew确实没有现成的libtensorflow包,源码编译是Mac上最通用的解决方式,步骤如下:
- 先装依赖:用
brew install bazel安装Bazel,同时确保Xcode命令行工具已安装(xcode-select --install) - 克隆TensorFlow源码:
git clone https://github.com/tensorflow/tensorflow.git,建议切换到稳定分支,比如git checkout r2.15(选和你需求匹配的版本) - 配置编译参数:运行
./configure,按提示选择——Mac上CUDA选no,Metal加速选yes,Python路径选系统默认或你用的虚拟环境路径 - 编译C++库:执行
bazel build --config=opt //tensorflow:libtensorflow_cc.dylib //tensorflow:libtensorflow_framework.dylib,如果是Apple Silicon芯片,加--config=macos_arm64参数 - 部署库文件:把
bazel-bin/tensorflow下的两个.dylib文件复制到/usr/local/lib,把tensorflow/include和bazel-genfiles/tensorflow里的头文件全部复制到/usr/local/include/tensorflow
二、用预编译包简化流程
不想编译源码的话,可直接用预编译库:
- 去TensorFlow官方GitHub release页找对应Mac架构(x86_64/arm64)的预编译C++库压缩包,解压后会得到
include和lib文件夹 - 把
include里的内容复制到/usr/local/include,lib里的.dylib文件复制到/usr/local/lib - 注意要选和你开发环境匹配的TensorFlow版本,避免API不兼容
三、构建第一个TensorFlow C++应用
用CMake管理项目更省心,示例如下:
- 写
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10) project(tf_cpp_demo) set(CMAKE_CXX_STANDARD 17) # 查找TensorFlow库 find_package(TensorFlow REQUIRED) add_executable(tf_cpp_demo main.cpp) target_link_libraries(tf_cpp_demo TensorFlow::TensorFlow)
- 写测试代码
main.cpp:
#include <iostream> #include "tensorflow/core/public/session.h" #include "tensorflow/core/platform/env.h" int main() { tensorflow::Session* session; tensorflow::Status status = tensorflow::NewSession(tensorflow::SessionOptions(), &session); if (!status.ok()) { std::cout << status.ToString() << std::endl; return 1; } std::cout << "TensorFlow session 创建成功!" << std::endl; session->Close(); return 0; }
- 编译运行:
mkdir build && cd build cmake .. make ./tf_cpp_demo
四、踩坑提示
- 架构匹配:M系列芯片必须用arm64版本的库,x86_64的Mac用对应架构包,混装会导致运行崩溃
- 依赖补充:如果编译时提示缺失Protobuf、Eigen,直接用
brew install protobuf eigen安装 - 版本一致性:代码中调用的API要和TensorFlow库版本对应,比如新版TensorFlow的Session API有变动,要查对应版本的文档
内容的提问来源于stack exchange,提问作者Kjobber
相关产品推荐
相关产品推荐

