问题 使用QtCreator设置GDB


我有一个使用OpenCV和cmake的简单项目,并且有两个源文件,只有segmentation.h和segmentation.cpp。

这是cmakefile:

project(Segment)
cmake_minimum_required(VERSION 2.8)

SET(CMAKE_BUILD_TYPE Debug)
SET(CMAKE_VERBOSE_MAKEFILE true)

if(CMAKE_COMPILER_IS_GNUCXX)
    message(STATUS "GCC detected, adding compile flags")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g -std=c++98 -Wall")
endif(CMAKE_COMPILER_IS_GNUCXX)

find_package(OpenCV REQUIRED)
add_executable(Lulu segmentation.cpp segmentation.h)
target_link_libraries(Lulu ${OpenCV_LIBS})

我使用发送到cmake的参数创建了一个Debug构建:-DCMAKE_BUILD_TYPE = Debug。但是QtCreator仍然会跳过断点,并且无法正常启动gdb:

&"warning: GDB: Failed to set controlling terminal: Inappropriate ioctl for device\n"

如何解决这个问题?


10450
2017-10-10 17:41


起源

不是100%肯定,但那 GDB 警告可能与它无关,它只是意味着gdb没有在真正的终端中运行。你能找到所用的实际编译命令,并检查一下 -g 开关真的在那里?也很好奇,为什么古老 -std=c++98? - hyde


答案:


项目 并在运行设置中选中说出的框 在终端中运行。这将使QT Creator在XTerm(默认)中启动程序,该程序可以很好地与gdb一起运行并生成 &“警告:GDB:无法设置控制终端:设备不适当的ioctl \ n” 问题消失了。

默认情况下,启动调试器时,它还会将QT Creator带到前台,从而隐藏启动的终端。要停止此行为,请转到: 工具选项调试器。在里面 一般 选项卡,取消勾选说的复选框 应用程序中断时,将Qt Creator置于前台

如果要更改终端,可以在中进行更改 选项环境。在里面 系统 部分 终奌站 到你想要的。对于本机Ubuntu / Gnome终端,请将其设置为 / usr / bin / gnome-terminal -x。此设置中的参数必须告诉终端执行外部命令或程序。


15
2017-12-20 06:28