CMake compila el programa C++ y lo ejecuta

Implementación de la compilación de CMake en el sistema Windows

Escribí un pequeño programa y lo guardé en el archivo example.cpp.

Luego cree una carpeta de compilación y un archivo CMakeLists.txt en el mismo directorio y escriba el siguiente contenido en el archivo:

# 指定要求的CMake的最低版本
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
# 定义项目的名称,会在build目录中生成Project_Name.sln --> OXI_Model_Project.sln
project(OXI_Model_Project)
# 设置Libtorch的路径,具体到Torch目录
set(Torch_DIR D:/LibTorch/libtorch/share/cmake/Torch)
# 查找并加载Torch库
find_package(Torch REQUIRED)
# 将TORCH_CXX_FLAGS添加到CMAKE_CXX_FLAGS中,以确保正确的编译选项和标志
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
# 将源文件example.cpp添加到可执行文件oxi_model中,可执行文件的名字自己设置
add_executable(oxi_model example.cpp)
# 将TORCH_LIBRARIES链接到可执行文件oxi_model中,以确保正确的链接Torch库
target_link_libraries(oxi_model "${TORCH_LIBRARIES}")
# 将目标可执行文件oxi_model的C++标准设置为C++14;Libtorch是基于C++14实现的
set_property(TARGET oxi_model PROPERTY CXX_STANDARD 14)

Luego abra Developer Command Prompt for vs 2022una ventana de línea de comando, vaya al directorio de compilación e ingrese los siguientes comandos en secuencia:

cmake -DCMAKE_PREFIX_PATH=`D:\LibTorch\libtorch\share\cmake\Torch` ..  // 编译配置文件
msbuild OXI_Model_Project.sln /p:Configuration=Release /m  // 生成可执行文件,放在Release目录中

Finalmente, haga doble clic en el archivo ejecutable en el directorio Release, o cd en el directorio Release en la ventana de línea de comando, y luego ingrese oxi_model para ejecutar el archivo ejecutable oxi_model.exe.

Implementación de la compilación de CMake en el sistema Linux

Las operaciones en el sistema Linux son las mismas que en el sistema Windows, excepto que los comandos ingresados ​​en la ventana de la línea de comandos son diferentes. Abra la terminal en el sistema Linux, vaya al directorio de compilación e ingrese los siguientes comandos en secuencia:

cmake ..  // 编译配置文件
make  // 生成可执行文件

Luego ingréselo en el directorio de compilación ./oxi_modelpara generar los resultados de la ejecución.

おすすめ

転載: blog.csdn.net/weixin_48158964/article/details/132489240