这个节目除了告别世界什么也不做:
/* Ubuntu 18.04 with GCC 10.1.0 and libstdc++-10-dev */
#include <memory_resource>
#include <concepts>
#include <ranges>
#include <string_view>
/* declare global memory resource */
std::pmr::synchronized_pool_resource pool;
int main(int argv, char * argc[]){
std::puts("Goodbye World!");
}它编译得很好,但在SEGV上终止。
/usr/include/c++/10/memory_resource第445行,在SPR的构造函数中:
synchronized_pool_resource()
: synchronized_pool_resource(pool_options(), get_default_resource())(未知来源:0) std::pmr::synchronized_pool_resource::synchronized_pool_resource(std::pmr::synchronized_pool_resource * const )(/usr/std::pmr::synchronized_pool_resource::synchronized_pool_resource(std::pmr::synchronized_pool_resource/c++/10/memory_resource:445) __static_initialization_and_destruction_0(int __initialize_p,(/data/solution/projects/test/source/main.cpp:10) _GLOBAL__sub_I__Z4testRNSt3pmr26synchronized_pool_resourceE() (/data/solution/projects/test/source/main.cpp:16) __libc_csu_init (未知来源:0) libc.so.6!__libc_start_main(int ()( int,char **,char **) main,int argc,char ** argv,int ()(int,char **,char **) init,void ()( void ) fini,void ()( rtld_fini ),void* stack_end) _start (未知来源:0)
堆栈上的调用链解释了程序可能已经链接到libstdc++.so.6。这是否一个可能的原因,如果是的话,我该怎么办?
我在用
GNU gdb (Ubuntu8.2-0ubuntu1~18.04) 8.2
用于调试。是不是因为GDB还没有做好准备呢?
顺便说一句:我真的不能用这个编辑器来处理过去的图片。它就是没有出现。
发布于 2020-07-15 17:04:33
您需要将-pthread添加到g++链接调用中。如果你认为应该有一个可理解的错误信息…,我不能怪你
https://stackoverflow.com/questions/62493609
复制相似问题