电脑配置:今年刚买的机械师T58-V, i7-11800H,16G,8核16线程。
环境:win10中安装虚拟机VMware,运行Ubuntu系统,在Ubuntu的CLion中调试C++的cmake工程代码。代码是深蓝学院的路径规划课程第二节的代码。
(我觉得我这个问题跟虚拟机啥的没有关系,因为我装了Ubuntu双系统之后还是会遇到跟踪光标乱跳的问题,而且每次调试的时候光标虽然乱跳,但是乱跳的位置都是一样的。)
问题:
开始调试的时候光标指在245行
但是我步进一次的时候他会跳到一个.h文件当中(我没有步入)
再次点步进的时候又会跳到另一个.h文件中
这个cpp文件是这样的,在别的cpp文件中还会出现从50行步进之后变到30行这种情况。变量的情况也会变回程序运行到30行时该有的结果。
前两天我在这个工程的demo_node.cpp和random_complex_generator.cpp文件中也遇到了这种情况,当时网上查资料说是什么编译优化或者多线程问题,但是还是没有搞定
不过同样,这个工程下的waypoint_generator.cpp却依然存在这个问题
现在我觉得可能时Cmakelist的问题,附上demo_node.cpp和random_complex_generator.cpp的CmakeList
cmake_minimum_required(VERSION 2.8.3)
project(grid_path_searcher)
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
nav_msgs
visualization_msgs
)
find_package(Eigen3 REQUIRED)
find_package(PCL REQUIRED)
set(Eigen3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
catkin_package(
INCLUDE_DIRS include
)
include_directories(
include
SYSTEM
third_party
${catkin_INCLUDE_DIRS}
${Eigen3_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
)
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS} -O0 -Wall") # -Wextra -Werror
add_executable( demo_node
src/demo_node.cpp
src/Astar_searcher.cpp
src/read_only/JPS_utils.cpp
src/read_only/JPS_searcher.cpp
)
target_link_libraries(demo_node
${catkin_LIBRARIES}
${PCL_LIBRARIES}
)
add_executable ( random_complex
src/random_complex_generator.cpp )
target_link_libraries( random_complex
${catkin_LIBRARIES}
${PCL_LIBRARIES} )
以及waypoint_generator.cpp的CmakeList文件
cmake_minimum_required(VERSION 2.8.3)
project(waypoint_generator)
set(CMAKE_VERBOSE_MAKEFILE "true")
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS} -O0 -Wall") # -Wextra -Werror
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
set(ADDITIONAL_CXX_FLAG "-Wall -O3 -march=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CXX_FLAG}")
find_package(catkin REQUIRED COMPONENTS
roscpp
tf
nav_msgs
)
catkin_package()
include_directories(include)
include_directories(
${catkin_INCLUDE_DIRS}
)
add_executable(waypoint_generator src/waypoint_generator.cpp)
target_link_libraries(waypoint_generator
${catkin_LIBRARIES}
)
请问这是怎么回事?困扰我非常久了!!