Sum*_*Sun 7 c++ makefile cmake visual-studio-code
我正在尝试在 Ubuntu 上使用 VS Code 调试 C++ 程序。我已经make
成功构建了该项目。我使用bin/show dat
命令从终端调用它并且它有效。
在 VS Code 中,我安装了 C++ 调试工具,而不是创建 launch.json 和tasks.json。这两个文件将附在下面。
现在我可以按F5成功启动该程序并且运行良好。但是函数第一行的断点main
没有被命中。
谁能给我一些建议我该如何解决这个问题?感谢您的时间。如果需要更多信息,请告诉我。
文件launch.json的内容
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/show",
"preLaunchTask": "build",
"args": ["${workspaceFolder}/dat"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
文件tasks.json的内容
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make"
}
]
}
Run Code Online (Sandbox Code Playgroud)
调试控制台的内容如下
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
=cmd-param-changed,param="pagination",value="off"
Stopped due to shared library event (no libraries added or removed)
Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, 0x00000000004243a0 in main ()
Run Code Online (Sandbox Code Playgroud)
使用MakeFile和CMakeLists.txt进行更新
生成文件
all: .configured
cmake --build .build
.PHONY: test
test:
cmake -H. -B.build
CTEST_OUTPUT_ON_FAILURE=true cmake --build .build --target test
config: .build
ccmake -H. -B.build
touch .configured
.configured: .build
ifeq ($(CMAKE_GENERATOR),Ninja)
cmake -H. -B.build -G "Ninja"
else
cmake -H. -B.build -G "Unix Makefiles"
endif
touch .configured
.build:
mkdir -p .build
clean: .build
cmake --build .build --target clean
-rm -rf .build
rm -f .configured
DOC = doc/
docu: docu_html docu_latex docu_hl
echo
echo
echo + Reference documentation generated: $(DOC)html/index.html
echo + Reference documentation generated: $(DOC)refman.pdf
echo + Highlevel documentation generated: $(DOC)documentation_HL.pdf
echo
docu_html:
doxygen doc/doxygen.cfg
cd $(DOC) ; zip -q html.zip html/*
echo
echo
docu_latex:
$(MAKE) -C $(DOC)latex
cd $(DOC)latex ; dvips refman
cd $(DOC)latex ; ps2pdf14 refman.ps refman.pdf
cp $(DOC)latex/refman.pdf $(DOC)
docu_hl: $(DOC)high_level_doc/documentation.tex
cd $(DOC)high_level_doc ; latex documentation.tex
cd $(DOC)high_level_doc ; bibtex documentation
cd $(DOC)high_level_doc ; latex documentation.tex
cd $(DOC)high_level_doc ; dvips documentation
cd $(DOC)high_level_doc ; ps2pdf14 documentation.ps ../documentation_HL.pdf
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt
cmake_minimum_required (VERSION 2.8.2)
project (3DTK)
if(POLICY CMP0025)
#necessary to build with custom clang on macOS
cmake_policy(SET CMP0025 NEW)
endif()
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/3rdparty/CMakeModules" ${CMAKE_MODULE_PATH})
# cmake no longer defines WIN32 on cygwin
set(CMAKE_LEGACY_CYGWIN_WIN32 0) # remove when cmake >= 2.8.4 is required
# On Windows, the symbols of a dynamic library have to be explicitly exported
# using __declspec(dllexport) or otherwise the library will not even be built.
# To avoid having to modify our headers, we just force the same behaviour as
# under Unix
if (MSVC)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
# Hide CMake variables
set (CMAKE_INSTALL_PREFIX "/usr/local" CACHE INTERNAL "" FORCE)
set (CMAKE_BUILD_TYPE "" CACHE INTERNAL "" FORCE)
# being able to set the output directory to a different one than the default
# (the source directory) is important for platforms like windows, where the
# produced binaries cannot be run if being placed in certain locations (like on
# a network drive)
set(OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}" CACHE PATH "The directory where the output will be placed into lib, obj and bin subdirectories (default: ${PROJECT_SOURCE_DIR})" )
# Set output directories for libraries and executables
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}/lib )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}/obj )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}/bin )
# Set output directories for multi-config builds (like with MSVC)
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${OUTPUT_DIRECTORY}/lib )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${OUTPUT_DIRECTORY}/obj )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${OUTPUT_DIRECTORY}/bin )
endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
include(CheckSymbolExists)
check_symbol_exists(mmap sys/mman.h HAVE_MMAP)
check_symbol_exists(mkstemp stdlib.h HAVE_MKSTEMP)
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
check_symbol_exists(fallocate fcntl.h HAVE_FALLOCATE)
set(CMAKE_REQUIRED_DEFINITIONS)
if(HAVE_MMAP AND HAVE_MKSTEMP AND HAVE_FALLOCATE)
add_definitions(-DWITH_MMAP_SCAN)
endif()
#include_directories(OPENGL_INCLUDE_DIR)
if(WIN32)
# Tells the config system not to automatically select which libraries to
# link against. Normally if a compiler supports #pragma lib, then the
# correct library build variant will be automatically selected and linked
# against, simply by the act of including one of that library's headers.
# This macro turns that feature off.
add_definitions(-DBOOST_ALL_NO_LIB)
# Forces all libraries that have separate source, to be linked as dll's
# rather than static libraries on Microsoft Windows (this macro is used to
# turn on __declspec(dllimport) modifiers, so that the compiler knows which
# symbols to look for in a dll rather than in a static library).
add_definitions(-DBOOST_ALL_DYN_LINK)
endif()
set(Boost_ADDITIONAL_VERSIONS "1.42" "1.42.0" "1.44" "1.44.0" "1.45.0" "1.45" "1.46" "1.46.1" "1.47.0" "1.47" "1.48" "1.50" "1.52" "1.53" "1.55" "1.56")
if(WIN32)
# for some unknown reason no one variant works on all windows platforms
set(Boost_DEBUG 1)
find_package( Boost COMPONENTS serialization graph regex filesystem system thread chrono date_time program_options system REQUIRED)
else()
find_package( Boost COMPONENTS serialization graph regex filesystem system thread date_time program_options system REQUIRED)
endif()
if(Boost_FOUND)
link_directories(${BOOST_LIBRARY_DIRS})
include_directories(${Boost_INCLUDE_DIRS})
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
endif()
find_package(CXSparse REQUIRED)
find_package(ANN)
if (ANN_FOUND)
set(ANN_LIBRARIES_SHARED ${ANN_LIBRARIES})
set(ANN_LIBRARIES_STATIC ${ANN_LIBRARIES})
else()
add_subdirectory("3rdparty/ann")
set(ANN_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/3rdparty/ann/ann_1.1.1_modified/include")
set(ANN_LIBRARIES_SHARED ann_shared)
set(ANN_LIBRARIES_STATIC ann_static)
endif()
find_package(Newmat)
if(NEWMAT_FOUND)
set(NEWMAT_LIBRARIES_SHARED ${NEWMAT_LIBRARIES})
set(NEWMAT_LIBRARIES_STATIC ${NEWMAT_LIBRARIES})
else()
add_subdirectory("3rdparty/newmat")
set(NEWMAT_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/3rdparty/newmat/newmat-10")
set(NEWMAT_LIBRARIES_SHARED newmat_shared)
set(NEWMAT_LIBRARIES_STATIC newmat_static)
endif()
if(APPLE)
find_package(OpenCV REQUIRED HINTS "/usr/local/opt/opencv3/share/OpenCV/")
else()
if(WIN32)
set(OpenCV_STATIC ON)
endif()
endif()
if(EXISTS "${OpenCV_DIR}/OpenCVConfig.cmake")
include("${OpenCV_DIR}/OpenCVConfig.cmake")
set(ADDITIONAL_OPENCV_FLAGS
"-DCV_MINOR_VERSION=${OpenCV_VERSION_MINOR} -DCV_MAJOR_VERSION=${OpenCV_VERSION_MAJOR}"
CACHE STRING "OpenCV Version Defines)"
)
## Include the standard CMake script
else()
set(ADDITIONAL_OPENCV_FLAGS
""
CACHE STRING "OpenCV Version Defines (BLUB)"
)
endif()
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_OPENCV_FLAGS}")
#################################################
# Declare Options and modify build accordingly ##
#################################################
# cvblob is needed for thermo
find_package(OpenCV QUIET)
if (OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
add_subdirectory(3rdparty/cvblob)
link_directories(${PROJECT_SOURCE_DIR}/3rdparty/cvblob)
else()
message(STATUS "Not building cvblob because WITH_OPENCV is OFF")
endif()
option(WITH_CGAL "Compile with CGAL support" ON)
option(WITH_LIBZIP "Compile with libzip support" ON)
option(WITH_OPENGL "Compile with OpenGL support" ON)
option(WITH_OPENCV "Compile with OpenCV support" ON)
option(WITH_QT "Compile tools relying on QT (qtshow)" ON)
option(WITH_GLFW "Compile with GLFW support" ON)
option(WITH_FTGL "Compile with FTGL support" ON)
option(WITH_XMLRPC "Compile with XMLRPC support" ON)
option(WITH_EIGEN3 "Compile with eigen3 support" ON)
option(WITH_LIBCONFIG "Compile with libconfig support" ON)
option(WITH_ROS "Compile with ROS support" OFF)
option(WITH_PYTHON "Compile Python bindings" ON)
option(WITH_WXWIDGETS "Compile with wxwidgets support" ON)
option(WITH_OPENCV_NONFREE "Whether to use non-free (patent encumbered) OpenCV functionalities" OFF)
option(WITH_COMPACT_OCTREE "Whether to use the compact octree display ON/OFF" OFF)
option(WITH_GLEE "Whether to use OpenGL extensions, requires glee. ON/OFF" OFF)
option(WITH_LASLIB "Whether to build LASlib based scanio library" ON)
## CUDA accelerated collision detection
option(WITH_CUDA "Whether to build CUDA accelerated collision detection tools" OFF)
if(WITH_CUDA)
find_package(CUDA REQUIRED)
include_directories(${FOUND_CUDA_NVCC_INCLUDE})
#owerrite users input - need to be fixed
#select all NVIDIA GPU arch which support unified memory (CUDA toolkit >= 6.0) and arch>=30
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_30,code=sm_30;-gencode arch=compute_35,code=sm_35;-gencode arch=compute_50,code=sm_50;-gencode arch=compute_52,code=sm_52)
message("CUDA_NVCC_FLAGS = ${CUDA_NVCC_FLAGS}")
message(STATUS "With CUDA accelerated collision detection")
else()
message(STATUS "Without CUDA accelerated collision detection")
endif()
## RivLib
option(WITH_RIVLIB "Whether the RIEGL rivlib is present ON/OFF" OFF)
if(WITH_RIVLIB)
message(STATUS "Compiling a scan IO for RXP files")
set(RIEGL_DIR ${PROJECT_SOURCE_DIR}/3rdparty/riegl/)
if(UNIX)
set(RiVLib_USE_STATIC_RUNTIME ON)
endif()
find_package(RiVLib QUIET COMPONENTS scanlib HINTS "${RIEGL_DIR}/cmake/")
if(${RiVLib_FOUND})
include_directories(${RiVLib_INCLUDE_DIRS})
else()
# TODO: Remove this if nobody is using the old RiVLib anymore.
# Change QUIET to REQUIRED in the find_package call for RiVLib above.
message(STATUS "Cannot find current RiVLib. Trying to build scan IO for RXP files with old scanlib.")
add_definitions(-DWITH_OLD_RIVLIB)
find_package(LibXml2 REQUIRED)
include_directories(${LIBXML2_INCLUDE_DIR})
include_directories(${PROJECT_SOURCE_DIR}/3rdparty)
if(WIN32)
set(RiVLib_SCANLIB_LIBRARY ${RIEGL_DIR}libscanlib-mt.lib ${RIEGL_DIR}libctrllib-mt.lib ${RIEGL_DIR}libboost_system-mt-1_43_0-vns.lib ${LIBXML2_LIBRARIES})
else()
set(RiVLib_SCANLIB_LIBRARY ${RIEGL_DIR}libscanlib-mt-s.a ${RIEGL_DIR}libctrllib-mt-s.a ${RIEGL_DIR}libboost_system-mt-s-1_43_0-vns.a pthread ${LIBXML2_LIBRARIES})
endif()
endif()
else()
message(STATUS "Do NOT compile a scan IO for RXP")
endif()
option(WITH_OPENMP "Whether to use parallel processing capabilities of OPENMP. ON/OFF" ON)
if (WITH_OPENMP)
find_package(OpenMP REQUIRED)
endif()
option(WITH_METRICS "Whether to use time metrics. ON/OFF" OFF)
option(WITH_ADDONS "Whether to download and use addons to 3DTK. ON/OFF" OFF)
if(WITH_ADDONS)
message(STATUS "Compiling addons directory")
#execute_process(COMMAND svn co https://robotik.informatik.uni-wuerzburg.de/slam6dprivate/trunk/addons addons
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
# OUTPUT_QUIET
# )
message(STATUS "With addons.")
else()
message(STATUS "Without addons.")
endif()
#################################################
# OPERATING SYSTEM SPECIFIC BEHAVIOUR ##
#################################################
## Special treatment for system specifics
if(APPLE)
add_definitions(-Dfopen64=fopen)
endif()
## Multiple Cores
include(ProcessorCount)
ProcessorCount(PROCESSOR_COUNT)
if(NOT PROCESSOR_COUNT EQUAL 0)
set(NUMBER_OF_CPUS "${PROCESSOR_COUNT}" CACHE STRING "The number of processors to use (default: ${PROCESSOR_COUNT})" )
else()
set(NUMBER_OF_CPUS "1" CACHE STRING "The number of processors to use (default: 1)" )
endif()
# OPENMP_NUM_THREADS
if(OPENMP_FOUND AND WITH_OPENMP)
message(STATUS "With OpenMP ")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAX_OPENMP_NUM_THREADS=${NUMBER_OF_CPUS} -DOPENMP_NUM_THREADS=${NUMBER_OF_CPUS} ${OpenMP_CXX_FLAGS} -DOPENMP")
else()
message(STATUS "Without OpenMP")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAX_OPENMP_NUM_THREADS=1 -DOPENMP_NUM_THREADS=1")
endif()
# 3rdparty
if(WIN32)
include_directories(${PROJECT_SOURCE_DIR}/3rdparty/windows/)
link_directories(${PROJECT_SOURCE_DIR}/3rdparty/windows)
link_directories(${BOOST_LIBRARYDIR})
add_library(XGetopt STATIC ${PROJECT_SOURCE_DIR}/3rdparty/windows/XGetopt.cpp)
set(CMAKE_STATIC_LIBRARY_SUFFIX "32.lib")
# to be able to use numeric_limits<int>::max() and friends on windows
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOMINMAX")
else()
if (WITH_OPENGL)
# Add include path for OpenGL without GL/-prefix
# to avoid the include incompatibility between MACOS
# and linux
find_path(OPENGL_INC NAMES gl.h GL/gl.h PATHS /usr/include/GL)
if (${OPENGL_INC})
include_directories(${OPENGL_INC})
else()
message(STATUS "gl.h not found")
endif()
endif()
endif()
if (${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
# using Clang
set(ADDITIONAL_CFLAGS "-O3 -std=c++0x -msse3 -Wall -Wno-write-strings -Wno-char-subscripts -Wno-unused-result" CACHE STRING "Additional flags given to the compiler (-O3 -Wall -Wno-write-strings)" )
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
# using GCC
set(ADDITIONAL_CFLAGS "-O3 -std=c++0x -msse3 -Wall -finline-functions -Wno-unused-but-set-variable -Wno-write-strings -Wno-char-subscripts -Wno-unused-result" CACHE STRING "Additional flags given to the compiler (-O3 -Wall -finline-functions -Wno-write-strings)" )
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL Intel)
# using Intel C++
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
# using Visual Studio C++
set(ADDITIONAL_CFLAGS "-O2" CACHE STRING "Additional flags given to the compiler ( -O2)" )
endif()
# Add OpenGL includes for MACOS if needed
# The OSX OpenGL frameworks natively supports freeglut extensions
if(APPLE)
include_directories(/System/Library/Frameworks/GLUT.framework/Headers)
include_directories(/System/Library/Frameworks/OpenGL.framework/Headers)
endif()
# hack to "circumvent" Debug and Release folders that are created under visual studio
# this is why the INSTALL target has to be used in visual studio
if(MSVC)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/bin/Release/ CONFIGURATIONS Release DESTINATION ${PROJECT_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe")
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
install(DIRECTORY ${PROJECT_SOURCE_DIR}/3rdparty/windows/x64/ CONFIGURATIONS Release DESTINATION ${PROJECT_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe")
else()
install(DIRECTORY ${PROJECT_SOURCE_DIR}/3rdparty/windows/ CONFIGURATIONS Release DESTINATION ${PROJECT_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe")
endif()
install(DIRECTORY ${PROJECT_SOURCE_DIR}/bin/Debug/ CONFIGURATIONS Debug DESTINATION ${PROJECT_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe")
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
install(DIRECTORY ${PROJECT_SOURCE_DIR}/3rdparty/windows/x64/ CONFIGURATIONS Debug DESTINATION ${PROJECT_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe")
else()
install(DIRECTORY ${PROJECT_SOURCE_DIR}/3rdparty/windows/ CONFIGURATIONS Debug DESTINATION ${PROJECT_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe")
endif()
endif()
#################################################
# Robot Operating System (ROS) Integration ##
#################################################
if( catkin_FOUND )
catkin_package(
INCLUDE_DIRS include addons/include
)
endif()
#################################################
# GENERAL PROJECT SETTINGS ##
#################################################
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CFLAGS}")
if(APPLE)
set(CMAKE_MACOSX_RPATH 1)
endif()
# Set include and link dirs ...
include_directories(${PROJECT_SOURCE_DIR}/include)
#include_directories(${PROJECT_SOURCE_DIR}/3rdparty/wxthings/include/)
link_directories(${PROJECT_SOURCE_DIR}/obj)
link_directories(${PROJECT_SOURCE_DIR}/lib)
# src/show must be added first because it defines the cache variables
# SHOW_LIBS_* which are used by others
add_subdirectory(src/show)
add_subdirectory(src/slam6d)
add_subdirectory(src/scanio)
add_subdirectory(src/scanserver)
add_subdirectory(src/segmentation)
add_subdirectory(src/normals)
add_subdirectory(src/veloslam)
add_subdirectory(src/qtshow)
add_subdirectory(src/grid)
add_subdirectory(src/pmd)
add_subdirectory(src/shapes)
add_subdirectory(src/floorplan)
add_subdirectory(src/thermo)
add_subdirectory(src/slam6d/fbr)
add_subdirectory(src/scanner)
add_subdirectory(src/model)
add_subdirectory(src/collision)
add_subdirectory(src/peopleremover)
add_subdirectory(src/spherical_quadtree)
add_subdirectory(src/cuda)
add_subdirectory(src/ros)
add_subdirectory(src/tools)
add_subdirectory(src/gps)
add_subdirectory(src/curvefusion)
# 3rdparty must come before src/calibration because it sets
# APRILTAG_INCLUDE_DIRS
add_subdirectory(3rdparty)
add_subdirectory(src/calibration)
add_subdirectory(bindings)
if(WITH_ADDONS)
message(STATUS "With 3dtk addons.")
add_subdirectory(addons)
endif()
find_package(Boost COMPONENTS system filesystem unit_test_framework REQUIRED)
enable_testing()
add_subdirectory(testing)
# Dummy target with all header files
# This is a hint for some IDEs, such as Qt Creator, to show all headers in the project tree
file(GLOB_RECURSE 3DTK_HEADER_FILES "include/*.h")
add_custom_target(headers SOURCES ${3DTK_HEADER_FILES})
message (STATUS "Build environment is set up!")
Run Code Online (Sandbox Code Playgroud)
-g
我的项目是用 CMake 构建的,我最终通过在CMakeFiles.txt中附加 a 解决了这个问题
原来有一个
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CFLAGS}")
这将在将其更改为之后构建项目,而无需额外的调试信息
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CFLAGS} -g")
在构建过程中提供额外信息将允许调试(构建过程也将比默认过程慢得多)。
归档时间: |
|
查看次数: |
3631 次 |
最近记录: |