我有一个使用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"
如何解决这个问题?
答案 0 :(得分:17)
转到项目,运行,然后在运行设置中选中在终端中运行框。这将使QT Creator在XTerm(默认)内启动该程序,该程序与gdb一起运行并且使&"警告:GDB:设置控制终端失败:设备不适当的ioctl \ n" 问题消失了。
默认情况下,启动调试器时,它还会将QT Creator带到前台,从而隐藏启动的终端。要停止此行为,请转到:工具,选项,调试程序。在常规标签中,取消选中在应用程序中断时将Qt Creator置于前台的复选框。
如果您想更改终端,可以在选项,环境中进行更改。在系统部分,终端即可。对于本机Ubuntu / Gnome终端,请将其设置为 / usr / bin / gnome-terminal -x 。此设置中的参数必须告诉终端执行外部命令或程序。