使用QtCreator设置GDB

Dzu*_*yen 13 c++ opencv gdb cmake qt-creator

我有一个使用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})
Run Code Online (Sandbox Code Playgroud)

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

&"warning: GDB: Failed to set controlling terminal: Inappropriate ioctl for device\n"
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Vin*_*nie 18

转到项目,运行并在运行设置中选中说明在终端中运行的框.这将使QT Creator在XTerm(默认)内启动程序,该程序可以很好地与gdb一起运行,并使得"警告:GDB:无法设置控制终端:设备不适当的ioctl"问题消失了.

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

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