编译glibc库make错误 编译make报错怎么办

Linux下从源代码下编译安装一个软件有时候会报错,遇到一些麻烦。那么编译make报错怎么办呢?下面跟着小编一起来了解一下吧。

编译make报错怎么办

在Ubuntu下安装nox,make出错如下:

》》》》 collect2: ld returned 1 exit status

》》》》 make[3]: *** [nox_core] Error 1

》》》》 make[3]: Leaving directory `/usr/nox/build/src‘

》》》》 make[2]: *** [all-recursive] Error 1

》》》》 make[2]: Leaving directory `/usr/nox/build/src’

》》》》 make[1]: *** [all-recursive] Error 1

》》》》 make[1]: Leaving directory `/usr/nox/nox13oflib/build‘

》》》》 make: *** [all] Error 2经过查资料,在参考文献【1】发现是因为nox只能在boost1.50以上的版本才能编译成功,而Ubuntu12.10版本的boost版本为1.42。所以要更新boost,采取的方法是到boost官网下载源码并且编译。

下面列出简要的安装过程

安装虚拟机:OpenFlow1.3_BiangHoo

IP:10.10.134.124

OS: ubuntu 12.10LTS

nox安装:

安装相关依赖包:

sudo apt-get install autoconf automake g++ libtool swig make git-core libboost-dev libboost-test-dev libboost-filesystem-dev libssl-dev libpcap-dev python-twisted python-simplejson python-dev

还要安装libboost-all-dev 和libttb-dev

apt-get install libboost-all-dev libttb-dev

然后到到boost官网下载源码并且编译。我下载的是1.55版本。然后将boost安装到/usr/local/目录下

。/bootstrap.sh --prefix=/usr/local/boost

然后

。/b2 install

接着运行ldconfig使相关的库生效

然后下载nox源码

git clone git://github.com/noxrepo/nox

cd nox

。/boot.sh

mkdir build

cd build

。。/。/configure --with-boost=/usr/local/boost #boost的安装位置

编译glibc库make错误 编译make报错怎么办

make

make install

即可安装成功

启动nox

cd PATH_TO_NOX/nox/build/src

。/nox_core -i ptcp:6633

注意:编译安装一个软件不会被系统的包管理系统记录信息,这对于卸载和记录软件的行为都是不利的,建议您尽量使用打包好的包(.rpm .deb)

下面说说编译出现错误的另一种方法:

./configure 错误

以下根据错误出现频率一一道来。第一个是经常性出现错误(是选择性的)。()中表示可选,OR表示有一致的解决办法,<>表示内的文字由具体情况具体表示

1 。(configure:) (error:) <somename> (<someversion> (or higher)) not found. (Please check your installation!) OR checking for <somename>… (configure:) (error:) not found. OR (configure:) (error:) <somename> (<someversion> (or newer)) is required to build <package-you’re-trying-to-compile>

这表明<somename>的包的-dev或者-devel版本没有安装。请使用你发行版的包管理器(或者其他寻找和安装包的方法)来寻找<somename>包并且安装,如果可能的话安装-dev 或者-devel版本

如果-dev 或者-devel版本已经安装了,或者不存在,查看一下已经安装的版本号。它足够高吗?是不是比<someversion>要低,这样你要常 识升级这些包。如果还不行的话,你可以尝试编译你要编译软件的以前的版本。老版本通常使用老版本的库/程序

如果./configure 提示找不到的是一个库(通常提示lib<something>),并且你确定了已经安装了正确版本的库,现在尝试找到你的库文件的位置。如果 库文件路径不包括在你的ld.conf 文件(通常是/etc/ld.conf或者是/etc/ld.so.conf)你应该在此文件中添加,然后运行ldconfig命令(/sbin /ldconfig)需要注意的是:运行ldconfig 通常需要root权限。如果您不知道怎么办,待回看一下下Make install错误的第一点

记:如果您没有修改ld.conf文件的权限,您还可以将库文件路径添加到LD_LIBRARY_PATH变量中。当然这是个笨方法,也不是最好的方法,但是当你没有其他选择时,你只好这么做了:

export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/your/library/directory”

当然,将您的库文件路径。注意当您运行编译好的软件时,LD_LIBRARY_PATH必须包含您的库文件夹路径

2。(configure:) (error:) cannot find header (file) <somename>.h OR (configure:) (error:) (header) (file) <somename>.h missing! OR <similar>

configure脚本提示找不到“.h文件。这个错误和上面的错误是类似的,它也要求您安装特定包的-dev或者-devel版本。然而,它并不 能清楚显示你需要安装哪个包,而<somename>会是一个特别广泛的包,你可以尝试在web上搜索<somename>.h 看它属于那个包,然后尝试用您系统的包管理器这安装这个包(如果可能的话,同时安装它的-dev或者-devel版本 )

3。 (configure:) (error:) no acceptable cc found in <somedirectories>

您没有安装gcc或者cc环境变量没有设置。用包管理器检查gcc是否已经安装,如果没有的话,安装它。如果安装了尝试用这个命令

export CC=”/usr/bin/cc”

如果要永久性的话,你可以将这个命令添加的/etc/profile中(当任何用户登陆进来时会执行这个文件里很多的命令)这样,您以后就不要再设置了。

4。(configure:) (error:) C++ preprocessor “/lib/cpp” fails sanity check

您的g++包或者失踪了或者conrrupted了,请检查您的包管理器(或者其他寻找和安装包的方法)去寻找g++和安装相应的包。注意,许多发 行版并不称为g++,比如说,Fedora,在yum源里用gcc-g++来表示g++包。如果您找不到g++,你可以寻找c++,cpp和/或者gcc

5。(configure:) (error:) C++ preprocessor “CC (-E)” fails sanity check

这个是libtool的一些特定有bug的版本,它使configure脚本检查libtool支持的编辑器。这个最快的解决办法就是安装g++(解决办法如上)

上面就是Ubuntu安装Nox后编译make不通过的方法介绍了,如果你不会安装Nox,又或者安装好后无法通过make,那么可尝试使用本文介绍的方法进行解决。

  

爱华网本文地址 » http://www.aihuau.com/a/257361/115462646.html

更多阅读

《魔兽世界》运行提示系统报错:"Error #132" html quot

《魔兽世界》运行提示系统报错:&amp;quot;Error #132&amp;quot;——简介好不容易下载的WOW客户端安装后,满心欢喜的打开却发现游戏报错不能运行。这种遭遇是多么的坑爹呀。。。求人不如求已下面请跟小编一起DIY解决一下吧!!!《魔兽

PL/SQL报错:“ORA-12154:TNS:无法解析指定的连接标识符”

在连接oracle的时候PL/SQL报错:“ORA-12154: TNS:无法解析指定的连接标识符”,在网上找了很多资料,然后问题解决。其中下面的文章分析的过程很值得学习,特地转载过来时刻告诫自己全局观的重要性!  下面是引用正文  接着上次的话题,在6

声明:《编译glibc库make错误 编译make报错怎么办》为网友楼兰姑娘分享!如侵犯到您的合法权益请联系我们删除