使用 QtCreator 设置 GDB
Posted
技术标签:
【中文标题】使用 QtCreator 设置 GDB【英文标题】:Setup GDB with QtCreator 【发布时间】:2014-10-10 17:41:33 【问题描述】:我有一个使用 OpenCV 和 cmake 的简单项目,并且有两个源文件只有 segmentation.h 和 segmentation.cpp。
这是 cmake 文件:
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: -DCMAKE_BUILD_TYPE=Debug 。但是QtCreator还是会跳过断点,无法正常启动gdb:
&"warning: GDB: Failed to set controlling terminal: Inappropriate ioctl for device\n"
如何解决这个问题?
【问题讨论】:
不是 100% 确定,但是 gdb 警告可能与它不起作用无关,它只是意味着 gdb 没有在真正的终端中运行。你能找到实际使用的编译命令,并检查-g
开关真的在那里吗?也很好奇,为什么古-std=c++98
?
【参考方案1】:
转到项目、运行并在运行设置中选中在终端中运行框。它将使 QT Creator 在与 gdb 良好配合的 XTerm(默认)中启动程序,并导致 &"warning: GDB: Failed to set control terminal: Inappropriate ioctl for device\n" 问题解决离开。
默认情况下,启动调试器时,它也会将 QT Creator 带到前台,从而隐藏启动的终端。要停止此行为,请转到:工具、选项、调试器。在常规选项卡中,取消选中在应用程序中断时将 Qt Creator 置于前台的复选框。
如果要更改终端,可以在选项、环境中进行。在 System 部分中,将 Terminal 设置为您想要的。对于原生 Ubuntu / Gnome 终端,将其设置为 /usr/bin/gnome-terminal -x。此设置中的参数必须告诉终端执行外部命令或程序。
【讨论】:
以上是关于使用 QtCreator 设置 GDB的主要内容,如果未能解决你的问题,请参考以下文章
使用 LLVM 在 Windows 上使用 QtCreator 设置 Cocos2dx 项目