【已解决】对xxxxxxxxxxx void (*)())@GLIBCXX_3.4.22’未定义的引用

问题描述:
使用gcc.5.4进行编译时,出现以下问题

/usr/lib/x86_64-linux-gnu/libQt5WebKit.so.5:对‘std::thread::_M_start_thread(std::unique_ptr >, void (*)())@GLIBCXX_3.4.22’未定义的引用
//usr/lib/x86_64-linux-gnu/libQt5WebKit.so.5:对‘std::thread::_State::~_State()@GLIBCXX_3.4.22’未定义的引用

问题原因:参考帖子,可能是因为编译器的版本不对,采用如下两种方法更改编译器版本(如果电脑内只有一种编译器版本,需要额外安装其他版本的编译器)
解决办法:
将编译器版本从gcc5.4更换至gcc7.4
第一种:在cakelist中指定编译器,在cmakelist中添加如下语句,
注意:需要在project(xxx)之前加上

SET(CMAKE_C_COMPILER "/usr/bin/gcc7")
SET(CMAKE_CXX_COMPILER "/usr/bin/g++7")

第二种:更换系统gcc版本

sudo update-alternatives --config gcc

在网上搜寻该问题的解决办法时,还查询到一些其他的解决办法,大家可以根据自己实际情况,选择合适有效的方法。
方法一:命令行gcc改为使用g++编译
方法二:升级glibc++库,重新做好软连接
方法三:

add_compile_options(-std=c++11)

你可能感兴趣的:(安装软件)