如何使用Bazel之外的构建系统构建调用Ray C++ API的C++应用?
使用CMake/Make构建Ray C++应用的实践
当然有不少开发者尝试过用CMake或Make替代Bazel来构建依赖Ray C++ API的应用,下面分享两种实用的配置方式:
CMake 配置示例
如果你的系统已安装Ray,或通过源码编译完成,可以用以下CMakeLists.txt模板:
cmake_minimum_required(VERSION 3.18) project(ray_cpp_demo) # 指定C++17标准(Ray C++ API要求) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 自动查找Ray库(适用于系统级安装或已配置环境变量的情况) find_package(Ray REQUIRED) # 若Ray是自定义路径安装,可手动指定头文件和库路径 # include_directories(/your/custom/ray/install/include) # link_directories(/your/custom/ray/install/lib) # 生成可执行文件 add_executable(ray_demo main.cpp) # 链接Ray核心库 target_link_libraries(ray_demo PRIVATE ray::ray)
编译步骤:
mkdir build && cd build cmake .. make
Makefile 配置示例
手动编写Makefile的话,需明确指定依赖路径和链接库:
CXX = g++ # 编译参数:C++17标准 + Ray头文件路径 CXXFLAGS = -std=c++17 -O2 -I/path/to/ray/include # 链接参数:Ray库路径 + 依赖库 LDFLAGS = -L/path/to/ray/lib -lray -pthread # 构建目标 all: ray_demo ray_demo: main.cpp $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) # 清理生成文件 clean: rm -f ray_demo
编译直接执行:
make
注意事项
- Ray C++ API依赖C++17及以上版本,编译时必须指定对应标准
- 若从源码编译Ray,需确保开启了C++组件(默认开启,自定义编译可添加
BUILD_CPP=ON参数) - 链接时可能需要额外添加
-pthread等系统依赖库,具体视操作系统而定 - 确认头文件和库路径指向正确,源码编译的Ray通常在
build目录下生成include和lib文件夹
内容的提问来源于stack exchange,提问作者3rdgenta
相关产品推荐
相关产品推荐

