提问人:Ustinian 提问时间:10/12/2023 最后编辑:273KUstinian 更新时间:10/12/2023 访问量:111
将 gcc11.0 更新到 gcc13.1 并编译程序但分段错误
Update gcc11.0 to gcc13.1 and compile the program but segmentation fault
问:
我已将编译器 gcc-11.3.0 更新为 gcc-13.1。gcc-v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/13.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.1.0 (GCC)
g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/13.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.1.0 (GCC)
我成功编译了程序。g++ main.cpp -std=c++20 -o main
#include <iostream>
int main(int argc, char const *argv[]) {
std::cout << "hello world\n";
return 0;
}
但是,当我运行它时.它说然后我用来检查程序./main
16553 segmentation fault "/home/gaoxiang/project/minilog/"main
ldd
> ldd main
linux-vdso.so.1 (0x00007fff498c4000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5251274000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f525118d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f525116d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5250f45000)
/lib64/ld-linux-x86-64.so.2 (0x00007f52514bd000)
我使用 gdb 调试程序,gdb 显示:
Starting program: /home/gaoxiang/project/minilog/main
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x0000155555406f5a in std::ostream::sentry::sentry(std::ostream&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
我不知道如何处理
答: 暂无答案
评论
gcc-13
which gcc
/usr/local/bin/gcc
make -j8
sudo make install