g++编译问题:skipping incompatible /usr/lib//libboost_system.so when searching for -lboost_system
接上。
连接器无法识别libboost_system.so,虽然找到了动态库文件libboost_system.so但不兼容,导致无法完成链接。
这种情况一般都是二进制不兼容(通俗的讲就是,在一台机器(比如32位)上编译得到的so,放在另一台机器(比如64位)上链接)。
查看库文件的属性:
chu@:~/SCFF_proj/trunk/example/echo/websvc[::]$ readelf -h /usr/lib//libboost_thread-mt.so.1.53.0
ELF 头:
Magic: 7f 4c
Class: ELF32
Data: 's complement, little endian
Version: (current)
OS/ABI: UNIX - GNU
ABI Version:
Type: DYN (共享目标文件)
Machine: Intel
Version: 0x1
入口点地址: 0x8ee0
程序头起点: (bytes into file)
Start of section headers: (bytes into file)
标志: 0x0
本头的大小: (字节)
程序头大小: (字节)
Number of program headers:
节头大小: (字节)
节头数量:
字符串表索引节头:
可以看到这个库文件是为32位操作系统编译的。
而我的机器是64位的:
chu@:~/SCFF_proj/trunk/example/echo/websvc[::]$ uname -a
Linux localhost.localdomain 3.10.-.el7.x86_64 # SMP Mon Jun :: UTC x86_64 x86_64 x86_64 GNU/Linux
总结下原因就是:
在64位的机器上安装了32位的boost库,能编译才怪。。。。(我为什么会干这种事呢~^~)
解决办法:
卸载32位的库,重新安装64位的。
g++编译问题:skipping incompatible /usr/lib//libboost_system.so when searching for -lboost_system的更多相关文章
- 在不安装sqlite3的时候使用sqlite3数据库以及问题/usr/bin/ld: skipping incompatible.....的解决
在没有安装sqlite3的linux机器上,怎么在不安装的情况下使用sqlite3的数据库呢: 其中只需要2个文件即可: 数据库的动态库libsqlite3.so,sqlite3.h. 另外,一些系统 ...
- Xcode 8 GM 编译缺失 /Users/usr/lib/libresolv.9.dylib
原因是操作系统的文件与手机需要的不同. 解决办法是将iOS DeviceSupport里当前手机版本的Symbols的libresolv.9.dylib文件,代替编译失败项目的Build Phases ...
- linux Ubuntu14.04 make编译文件报错:No rule to make target `/usr/lib/libpython2.7.so', needed by `python/_pywraps2.so'. Stop.
错误过程:当“make”编译文件时报错No rule to make target `/usr/lib/libpython2.7.so', needed by `python/_pywraps2.so ...
- qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’
linux下安装Qt5.7后添加qmake环境变量后出现错误 执行: qmake -v 出现错误:qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt ...
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...
- g++编译流程
测试程序test.cpp如下所示: #include <iostream> using namespace std; #define MAX 9 int main() { //just f ...
- <转载>gcc/g++编译
转载于:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/22/1782678.html 1. gcc/g++在执行编译工作的时候,总共需要4步 ...
- gcc/g++编译
1. gcc/g++在执行编译工作的时候,总共需要4步 (1).预处理,生成.i的文件[预处理器cpp] (2).汇编,将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs] (3).编译,将 ...
- 64位Redhat系统应用(c++代码)搭建-使用informix和g++编译
这篇博客很有必要写下来,记录我在一个比较原生的Linux系统上搭建一套应用所遇到的各种问题和各种坑. 关于这套应用,算是我离职前的一个项目,不完成的话没有办法交差,同时,这个项目也比较紧,合作行一直在 ...
随机推荐
- 我一直记不住的vim用法
一.多行编辑进入visual block模式一般模式下Crtl+v组合键以块的形式选中待编辑的文本 进入visual line模式一般模式下大写V以行的形式选中待编辑的文本 上述两种模式的复制用y,删 ...
- python模式匹配,提取指定字段
re匹配时分多行模式(re.M)与单行模式(rs.S),多行模式是每一行单独匹配,单行模式是把所有的行当成一行来匹配. 单行模式下.可以匹配换行符. ^$匹配所有字符 import re s='1_2 ...
- 转:智能模糊测试工具 Winafl 的使用与分析
本文为 椒图科技 授权嘶吼发布,如若转载,请注明来源于嘶吼: http://www.4hou.com/technology/2800.html 注意: 函数的偏移地址计算方式是以IDA中出现的Imag ...
- 【转载】万能adapter
adapter总是自己写,其实使用现成的框架会节省不少代码 原文地址:https://github.com/hongyangAndroid/baseAdapter base-adapter Andro ...
- Eclipse中快速 打出 main方法的签名
有时,我们创建一个空白类,需要打出main方法 public static void main(String [] args){ } 在Eclipse先敲main字符,然后按住ALT+/,再按回车即可 ...
- JS中==与===操作符的比较
摘要: ===操作符: 要是两个值类型不同,返回false 要是两个值都是number类型,并且数值相同,返回true 要是两个值都是stirng,并且两个值的String内容相同,返回true 要是 ...
- 洛谷P1196 [NOI2002] 银河英雄传说
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #includ ...
- AspNet5 Changes to [Activate] in beta-5
最近在看AspNet Core相关的文章,其中有个TagHelper,看上善若水的博客“关于TagHelper的那些事”,其中有一句 下面来自上善若水的博客原文: 我们知道ASP.NET 5实现了依赖 ...
- AtCoder - 4162 Independence
Problem Statement In the State of Takahashi in AtCoderian Federation, there are N cities, numbered 1 ...
- 【递推】【组合计数】UVA - 11401 - Triangle Counting
http://blog.csdn.net/highacm/article/details/8629173 题目大意:计算从1,2,3,...,n中选出3个不同的整数,使得以它们为边长可以构成三角形的个 ...