“调试 Linux C++ 配置”通常指 编译/构建配置 + 运行时调试环境 两部分。下面我从 常见场景 → 工具 → 典型问题排查 给你一个实用指南。
一般 Linux C++ 配置包括:
g++ -g -O0 main.cpp -o main
-g:生成调试符号-O0:关闭优化(避免变量被优化掉)✅ CMake 写法:
set(CMAKE_BUILD_TYPE Debug)
头文件找不到
fatal error: xxx.h: No such file or directory
解决:
-I/path/to/include
库找不到
undefined reference to xxx
解决:
-L/path/to/lib -lxxx
CMake:
target_include_directories(app PRIVATE /path/include)
target_link_libraries(app xxx)
make VERBOSE=1
或 CMake:
cmake --build . --verbose
error while loading shared libraries: libxxx.so
检查:
ldd ./your_program
临时解决:
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
永久(谨慎):
/etc/ld.so.conf.d/xxx.conf
ldconfig
gdb ./main
常用命令:
run
break main
next
step
print var
backtrace
带参数运行:
gdb --args ./main arg1 arg2
ulimit -c unlimited
./main
gdb ./main core
g++ -fsanitize=address -g main.cpp -o main
./main
g++ -fsanitize=undefined -g main.cpp -o main
message(STATUS "CXX flags: ${CMAKE_CXX_FLAGS}")
cmake -LA
| 问题 | 原因 |
|---|---|
| 段错误 | 空指针 / 越界 |
| 优化后变量看不到 | 没用 -O0 -g |
| 库版本不对 | 多版本冲突 |
| 静态/动态混用 | 链接方式不一致 |
| sudo 下找不到库 | 环境变量不同 |
你可以告诉我:
我可以直接帮你定位配置问题。