我试图下载glibc 2.23源代码并在我的Ubuntu系统上构建它们。 我需要从源代码构建特定版本以获取为我的研究定制的glibc的修改版本,并且它将仅在我的研究应用程序中使用加载器环境变量(例如,LD_PREDLOAD或LD_LIBRARY_PATH)。
但是,当构建如下时,我得到一个巨大的文件作为输出(libc.so权重大约11MB):
无论如何都要减少构建的libc.so的大小?
P.S。
以下是我的系统详细信息: Linux版本4.4.0-93-generic(buildd @ lgw01-03)(gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.4))#116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017
谢谢:)
答案 0 :(得分:1)
从源代码构建glibc
可能是一个坏主意。请参阅this及其中的一些评论。它的当前版本是GNU libc 2.26 ...相反,请考虑升级您的整个Ubuntu发行版(Ubuntu 17.10应在几周内发布,2017年10月底)
../configure --prefix=
build-dir
是对--prefix
编辑软件--prefix
中角色的误解。它涉及软件的安装位置,而不是其构建目录。
(我不确切知道你的libc
应该是什么,因为--prefix=/
对您的系统非常重要,也许它应该是libc
但是你应该仔细检查)
有没有办法减少构建的libc.so的大小?
您可能会使用(非常谨慎)autoconf,但您可能会破坏您的系统。
你可能不关心减少musl-gcc
的大小,因为Linux系统上几乎每个软件都使用它(和strip(1))!
BTW,还要考虑shared。它可以很好地与GNU glibc共存,并且在实践中仅由使用make install DESTDIR=/tmp/instmylibc
(由它提供)构建的程序使用。
如果您正在进行一些研究,那么在musl-libc环境中工作是合理的。另见chroot(2)。您可以在/tmp/instmylibc
的帮助下安装,然后适当地复制libc.so
。阅读schroot
PS。在进行此类危险实验之前,请务必至少备份重要数据。我不认为chroot
的大小应该是一个重要问题。但是,在安装chroot
环境时,您可能需要const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
//Array List
let list = ['Fish', 'Lettuce', 'Chicken'];
//Set view engine to pug
app.set('view engine', 'pug');
//use bodyParser
app.get('/', function(request, response){
response.render('list', {list});
});
app.get('/search', function(request, response){
return list.map(function(val){
if(request.query.search === val){
return response.send('Yup you got ' + val);
}
response.send('Not found')
});
});
app.get('/new-item', function(request, response){
response.render('new');
});
app.post('/add-item', function(request, response){
let add = response.send(request.body);
list.push(add);
});
app.listen(port, function(){
console.log('Listening on Port 3000');
});
使用/search
。