背景:开发中的项目之前一直用GCC4.8,boost库1.48版本的开发环境。现在因业务需求,需要更换GCC7.4,boost库1.70。

问题:可以正常编译BOOST的链接库文件,但是链接时候报错。

测试代码

报错如下:

/home/hzw/workspace/test1/boostTest.cpp:36:对‘boost::thread::join()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:37:对‘boost::thread::join()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:31:对‘boost::thread::~thread()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:30:对‘boost::thread::~thread()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:31:对‘boost::thread::~thread()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:30:对‘boost::thread::~thread()’未定义的引用
/tmp/ccedvRmj.o:在函数‘boost::thread::thread<void (*)()>(void (*&&)())’中:

分析原因:

  经过一番折腾,最后发现是只换了链接库,没有换头文件。

解决方法:

  把1.48的头文件备份,并替换成1.70的头文件。或者修改include路径(-I选项)指向1.70的头文件路径

*改完之后记得把所有的工程文件都重新编译一下

GCC 高版本7.4 编译链接 boost 报错 boost::thread::XXX’未定义的引用 解决方法的更多相关文章

  1. 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法

    从官网上下载5.3.2的源码后,make linux进行编译,提示报错: gcc -std=gnu99 -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline ...

  2. c语言中在引用math库后,编译出现错误(.text+0x9c):对‘sqrt’未定义的引用的解决办法

    写于2016年11月29日晚. 原因是gcc编译器没有引用默认的math库,需要在执行编译命令时加上-ml.例如: gcc 源文件 -ml -o 编译后文件名 或者 gcc 源文件 -lm -o 编译 ...

  3. 编译压缩代码 MFCompress-src-1.01 :对‘***’未定义的引用

    提示 MFCompressD.o:在函数‘main’中:MFCompressD.c:(.text.startup+0x34a): 警告: the use of `tempnam' is dangero ...

  4. CentOS6编译安装gcc高版本

    编译安装gcc高版本 因CentOS中gcc版本仅有4.4,故编译安装gcc高版本. 安装依赖库(如果你已安装过gcc低版本,可跳过这步) yum install glibc-static libst ...

  5. gcc编译时对'xxxx'未定义的引用问题

    gcc编译时对’xxxx’未定义的引用问题 gcc编译时对’xxxx’未定义的引用问题 原因 解决办法 gcc 依赖顺序问题 在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没 ...

  6. gcc编译时对’xxxx’未定义的引用问题

    gcc编译时对’xxxx’未定义的引用问题 原因 解决办法 gcc 依赖顺序问题 在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应该是链接)为可执行 ...

  7. gcc/g++ 编译时出现:“对’xxxx’未定义的引用,collect2: error: ld returned 1 exit status” 的错误

    出现的问题: 在使用 make 编译实现一个程序时,出现了下面的错误.查看程序源文件所在的目录时发现程序已经完成了编译,并生成了 list_repo.o 的文件,说明是在程序链接生成可执行文件时发生了 ...

  8. 【转】 g++编译时对'xxxx'未定义的引用问题(undefined reference to)

    转自:https://blog.csdn.net/killwho/article/details/53785910 引用:http://www.linuxdiyf.com/linux/16754.ht ...

  9. Ubuntu gcc错误:对'log'等函数未定义的引用

    Ubuntu gcc错误:对'log'等函数未定义的引用 a.c #include <stdio.h>#include <math.h>int main(){    float ...

随机推荐

  1. vue的学习--如何使用Intellij IDEA配置并运行vue项目

    重新接触vue,开始学习使用IDE对vue项目进行配置和运行项目. 1.前面的准备 一般的教程都能到通过命令行运行npm run dev,并通过结果显示的端口,用浏览器访问自己的vue项目的结果.但是 ...

  2. Spring - 环境安装

    安装IDEA的非Community版本和Java的包之后就可以用Java来HelloWorld了. 然后去这个链接:https://github.com/spring-guides/gs-rest-s ...

  3. 小程序开发--API之登录授权逻辑

    小程序登录授权获取逻辑 原生的小程序提供许多开放接口供使用者开发,快速建立小程序内的用户体系. 下面将小程序校验.登录.授权.获取用户信息诸多接口串联起来,以便更直观的认识到这些接口是如何在实际应用中 ...

  4. Java实现多线程生产者消费者模式的两种方法

    生产者消费者模式:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据.生产者生产一个,消费者消费一个,不断循环. 第一种实现方法,用BlockingQueue阻塞队 ...

  5. 8. String to Integer (atoi) ---Leetcode

    Implement atoi to convert a string to an integer. 题目分析: 题目本身很简单就是将一个字符串转化成一个整数,但是由于字符串的千差万别,导致在实现的时候 ...

  6. python pip settools 安装基于源码 gdal安装需要c++相关库

  7. 性能监控 | MAT分析内存泄漏

    使用MAT分析内存泄漏(二)八周年重印版 - 知乎 .u-safeAreaInset-top { height: constant(safe-area-inset-top) !important; h ...

  8. 阿里PB级Kubernetes日志平台建设实践

    干货分享 | 阿里PB级Kubernetes日志平台建设实践https://www.infoq.cn/article/HiIxh-8o0Lm4b3DWKvph 日志最主要的采集工具是 Agent,在 ...

  9. golang 循环创建闭包 问题排查

    ][]string{ { { "邀请码是什么", "我没有邀请码", "这个邀请码我可以随便填吗", "邀请码可以填他的手机号吗& ...

  10. python高级知识

    网络udp socket的作用 进程指的是:运行的程序以及运行时用到的资源这个整体称之为进程 socket(简称 套接字) 是最通用的进程间通信的一种方式 创建socket import socket ...