You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clion中OpenMP程序报错:Undefined Reference to 'omp_get_wtime'

问题排查与修复方案

1. 核心问题:CMake配置错误 + 源文件引用不当

(1) 不该直接包含.c文件

你的main.c里包含了qdbmp.c,这会导致该文件的代码被重复编译(后续若将其加入编译列表),直接引发符号重复定义错误。把#include "qdbmp.c"从main.c里删掉,改成将qdbmp.c作为独立源文件加入编译。

(2) OpenMP链接方式错误

手动用-fopenmp链接既不跨平台,也和CMake提供的OpenMP模块用法冲突。CMake已经封装了OpenMP::OpenMP_C目标,直接链接这个目标即可自动处理编译和链接的所有选项。

2. 修正后的CMake配置

替换你的CMakeLists.txt为以下内容:

cmake_minimum_required(VERSION 3.26)
project(myproject C)

set(CMAKE_C_STANDARD 11)

# 仅添加.c源文件,头文件无需列入
add_executable(myproject 
        main.c
        qdbmp.c
)

find_package(OpenMP REQUIRED)
# 为目标添加OpenMP编译选项
target_compile_options(myproject PRIVATE ${OpenMP_C_FLAGS})
# 链接OpenMP库
target_link_libraries(myproject PRIVATE OpenMP::OpenMP_C)

3. 额外排查点

  • 清理CMake缓存:在Clion中点击File -> Reload CMake Project,或者直接删除项目根目录下的build文件夹后重新构建。
  • 检查OpenMP语法:确认代码中#pragma omp相关指令拼写正确(比如有没有漏写omp、并行区域是否正确包裹代码)。
  • 确认编译器支持:之前同类程序能运行,这块大概率没问题,但可以检查Clion当前使用的编译器(GCC/Clang/MSVC)是否开启了OpenMP支持(GCC默认支持,MSVC需确保CMake的OpenMP模块能正常识别)。

内容的提问来源于stack exchange,提问作者Om Mistry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:12:50