gpt4 book ai didi

使用 gcc 时 CLion 调试器不工作

转载 作者:太空宇宙 更新时间:2023-11-04 08:00:10 25 4
gpt4 key购买 nike

我正在尝试配置 CLion,以便我可以使用 openMP。在我的 Mac 上使用默认设置时,编译器是 clang。默认的 Apple clang 不支持 openMP。

当我将编译器更改为 GCC 时,调试器不会在断点处停止。该程序就像执行编译文件时一样运行。

下面的 CMakeLists.txt 文件与 CLion 调试器完美配合。当我取消注释编译器标志时,调试器会忽略断点。

cmake_minimum_required(VERSION 3.8)
project(CLionTest)

set(CMAKE_C_STANDARD 99)
#set(CMAKE_C_COMPILER /usr/local/bin/gcc-7)
#set(CMAKE_C_FLAGS -fopenmp)
#set(CMAKE_C_FLAGS_DEBUG "-D_DEBUG")

set(MAIN main.c)
add_executable(CLionTest ${MAIN})

add_custom_target(CLionTestMake COMMAND make all WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

我该如何解决这个问题?

工具链设置:CMake 可执行文件:捆绑的 CMake 3.8.2调试器:捆绑的 LLDB 3.9.0

主.c:

#include <stdio.h>
#include <unistd.h>
#ifdef _OPENMP
#include <omp.h>
#endif

int main() {
printf("Hello, World!\n");

#pragma omp parallel
{
#ifdef _OPENMP
int size = omp_get_num_threads();
int rank = omp_get_thread_num();
#else
int rank = 0;
int size = 1;
#endif
printf("%d/%d\n", rank, size);
};

return 0;
}

最佳答案

set(CMAKE_C_FLAGS -fopenmp)
set(CMAKE_C_FLAGS_DEBUG "-D_DEBUG")

您正在替换 cflags而不是附加它们,因此您将删除生成调试符号的内置 -g 选项。相反,做

set(CMAKE_C_FLAGS "${CMAKE_CFLAGS} -fopenmp")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")

关于使用 gcc 时 CLion 调试器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47283627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com