--- title: "TensorFlow C++ installation" categories: - TensorFlow tags: - linux --- 這部份根本 undocumented 很煩 我最後竟然是跑去參考 Gentoo Linux 的 ebuild 需要的 Bazel targets: * //tensorflow:install\_headers * //tensorflow:libtensorflow\_cc.so headers 的部份比較麻煩 install\_headers target build 完後 ```shell sudo cp bazel-genfiles/tensorflow/include/. /usr/local/include/ -r ``` 不過有些命名很菜市場可能會搞的一團糟 八成還會有 absl 和 protobuf 的路徑要修 ```shell sudo ln /usr/local/include/external/com_google_absl/absl /usr/local/include/absl -s sudo ln /usr/local/include/external/protobuf_archive/src/google /usr/local/include/google -s ``` libraries 的部份: ```shell sudo cp bazel-bin/tensorflow/libtensorflow_cc.so /usr/local/lib/ sudo cp bazel-bin/tensorflow/libtensorflow_framework.so /usr/local/lib/ ``` 編譯: ```shell g++ foo.cpp -ltensorflow_framework -ltensorflow_cc ``` absl 的 header 貌似在 C++17 下會把 absl::string\_view 用 std::basic\_string\_view 實做 可能會造成 link 時有用字串當參數的函式找不到 例如 Conv2D 的 constructor