基本方法
find_package(OpenMP REQUIRED)
if(OpenMP_FOUND)
# 为当前目标添加OpenMP编译选项
target_link_libraries(your_target_name PRIVATE OpenMP::OpenMP_CXX)
endif()
完整示例
cmake_minimum_required(VERSION 3.26)
project(TestMemoryOrder)
set(CMAKE_CXX_STANDARD 20)
find_package(OpenMP REQUIRED) # 查找OpenMP的库
add_executable(TestMemoryOrder main.cpp
# lock_free_queue.h
# parallel_accumulate.cpp
# parallel_accumulate_package_task.cpp
# parallel_accumulate_exception_safty.cpp
# chapter_09/barrier.h
# chapter_09/join_threads.h
# chapter_09/parallel_partial_sum.cpp
# chapter_09/interruptible_thread.h
# chapter_09/interrupt_flag_wait.h
)
if(OpenMP_FOUND)
target_link_libraries(TestMemoryOrder PRIVATE OpenMP::OpenMP_CXX)
endif ()