View previous topic :: View next topic |
Author |
Message |
tecehux n00b
Joined: 01 Nov 2004 Posts: 46 Location: Germany
|
Posted: Fri Jan 07, 2005 12:28 pm Post subject: LDFLAG -Wl,-O1 在编译emacs时报错啊(gcc3.4.3) |
|
|
LDFLAG -Wl,-O1 在编译emacs时报错啊!
用的是gcc3.4.3
Code: | gcc -nostdlib `./prefix-args -Xlinker -z nocombreloc -Wl,-O1 ` -o temacs pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o dispnew.o frame.o scroll.o xdisp.o xmenu.o window.o charset.o coding.o category.o ccl.o cm.o term.o xfaces.o xterm.o xfns.o xselect.o xrdb.o fontset.o emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o filelock.o insdel.o marker.o minibuf.o fileio.o dired.o filemode.o cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o alloc.o data.o doc.o editfns.o callint.o eval.o floatfns.o fns.o print.o lread.o abbrev.o syntax.o unexelf.o mocklisp.o bytecode.o process.o callproc.o region-cache.o sound.o atimer.o doprnt.o strftime.o intervals.o textprop.o composite.o md5.o terminfo.o lastfile.o vm-limit.o widget.o ../lwlib/liblw.a -lXm -lXpm -lXp -lXmu -lXt -lSM -lICE -lXext -ltiff -ljpeg -lpng -lz -lm -lungif -lXpm -lX11 -lncurses -lm -lgcc -lc -lgcc /usr/lib/crtn.o
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: unrecognized option '-Wl,-O1'
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
make[1]: *** [temacs] 错误 1
make[1]: *** 正在等待未完成的任务....
|
|
|
Back to top |
|
|
akar Bodhisattva
Joined: 03 Dec 2004 Posts: 348 Location: HKSAR,China
|
Posted: Sat Jan 08, 2005 4:07 am Post subject: |
|
|
你的這個貼發到了 让你的 Gentoo 快若刀锋,但好像不對題!
對了, 前天測試 distccd, emerge 了一下, 我還用了 USE="-motif",沒有發生問題。
請問為什麼要用
_________________ AKar |
|
Back to top |
|
|
BlueSand n00b
Joined: 08 Dec 2004 Posts: 12
|
Posted: Sat Jan 08, 2005 9:47 am Post subject: |
|
|
对emacs的编译最好不要用优化参数,很容易就出错。
再者,emacs的强大之处主要还是在lisp,优化底层的c的作用也不是特别大。 |
|
Back to top |
|
|
tecehux n00b
Joined: 01 Nov 2004 Posts: 46 Location: Germany
|
Posted: Sat Jan 08, 2005 11:22 am Post subject: |
|
|
是因为我按着EricHsu的方法把这个ldflag加到make.conf里了,编译时却出错,只好放弃不用了。
在gentoo里还有类似package.use的文件可以单独设定每个portage的ldflag和cflag么? |
|
Back to top |
|
|
akar Bodhisattva
Joined: 03 Dec 2004 Posts: 348 Location: HKSAR,China
|
Posted: Sat Jan 08, 2005 11:37 am Post subject: |
|
|
tecehux wrote: |
是因为我按着EricHsu的方法把这个ldflag加到make.conf里了,编译时却出错,只好放弃不用了。 |
原來如此! 不好意思,錯怪了你!
也許要請 Eric,再在make.conf 的编译优化参数下,再加一行 敬告。
謝謝 BlueSand提醒。
_________________ AKar |
|
Back to top |
|
|
BlueSand n00b
Joined: 08 Dec 2004 Posts: 12
|
Posted: Sat Jan 08, 2005 12:52 pm Post subject: |
|
|
LDFLAGS是用来制定动态Library调用的参数集,加入make.conf会提高程序的速度,不过也增加了链接出错的可能性。
不过我暂时没有遇到过,除了emacs,
更多的内容可以参考https://forums.gentoo.org/viewtopic.php?t=67777&highlight=ldflags |
|
Back to top |
|
|
EricHsu Bodhisattva
Joined: 03 May 2004 Posts: 591 Location: Aragon Consulting Group, Beijing, China
|
Posted: Sun Jan 09, 2005 8:00 am Post subject: |
|
|
akar wrote: |
也許要請 Eric,再在make.conf 的编译优化参数下,再加一行 敬告。
|
to akar:
敬告嘛, 其实文章一开始就有哦, 仔细看看... 虽然不是具体针对 LDFLAGS 我今晚加上!
to tecehux,
有些功能强大的软件对于一些优化参数反而显得 "脆弱", 我知道的有 OOo, xine-libs, xorg.. 都不宜在编译它们时使用过多的优化参数, 现在知道多一个 emacs 也不行
以目前经验而言, 我用的软件都可以在更为优化的 CFLAGS, LDFLAGS 下编译, 所以, 大部分软件还是可以放心这么编译的. 遇到这些不能优化的, 那就:
Code: |
# CFLAGS="" LDFLAGS="" emerge [pkg]
|
_________________ - http://nkbit.com
- http://twitter.com/xuyihua |
|
Back to top |
|
|
tecehux n00b
Joined: 01 Nov 2004 Posts: 46 Location: Germany
|
Posted: Sun Jan 09, 2005 9:39 am Post subject: |
|
|
EricHsu wrote: |
以目前经验而言, 我用的软件都可以在更为优化的 CFLAGS, LDFLAGS 下编译, 所以, 大部分软件还是可以放心这么编译的. 遇到这些不能优化的, 那就:
Code: |
# CFLAGS="" LDFLAGS="" emerge [pkg]
|
|
噢,我是晚上睡觉前emerge -e system,醒来一看,就出了这个错。
记不得是哪里看到的那个emerge -e system && emerge -e system && emerge -e world && emerge -e world,实在是阴险啊! |
|
Back to top |
|
|
EricHsu Bodhisattva
Joined: 03 May 2004 Posts: 591 Location: Aragon Consulting Group, Beijing, China
|
Posted: Tue Jan 11, 2005 1:11 pm Post subject: |
|
|
tecehux wrote: |
噢,我是晚上睡觉前emerge -e system,醒来一看,就出了这个错。
记不得是哪里看到的那个emerge -e system && emerge -e system && emerge -e world && emerge -e world,实在是阴险啊! |
别这么说啊, 这个命令无非就是:
- 假设 system 中什么都没装 (-e = emptytree), 然后重建整个 system
- 以重建的 system, 再次假设 system 中什么都没装, 再重建
- 假设 world 中什么都没装, 重建之
- 以重建后的 world, 再次假设 world 中什么都没装, 再重建
这样就可以 "彻底" 重建整个系统.
之所以要每个命令来两次, 道理很简单, 比如你第一次 emerge -e system 时, 之前的系统可能是拿 -O3 build 的, 这时, 你就是拿 -O3 build 出来的系统来重建系统 (比如你想改成 -O2 了); 然后再运行一次 emerge -e system, 就是拿 -O2 build 出来的系统再 build 一个 -O2 的. 也就够 "彻底" 了, 呵呵 _________________ - http://nkbit.com
- http://twitter.com/xuyihua |
|
Back to top |
|
|
tecehux n00b
Joined: 01 Nov 2004 Posts: 46 Location: Germany
|
Posted: Tue Jan 11, 2005 5:15 pm Post subject: |
|
|
EricHsu wrote: |
别这么说啊, 这个命令无非就是:
- 假设 system 中什么都没装 (-e = emptytree), 然后重建整个 system
- 以重建的 system, 再次假设 system 中什么都没装, 再重建
- 假设 world 中什么都没装, 重建之
- 以重建后的 world, 再次假设 world 中什么都没装, 再重建
这样就可以 "彻底" 重建整个系统.
|
理论上是没错,可实际运行起来就不是说的这么简单了。我估计就我的机子,怎么也要四五天能整个装完!
而时间长也倒不是什么错,怕就怕出错,一个程序编译出错,就全都挂在那里了。倘若只是改个use之类也好办,就怕中间不得不来个其它的emerge。好了,emerge --resume是不成了,要么就重新开始,要么就手动找上回剩下的列个表继续吧。装下来可麻烦的要命。
最最关键的是:我不知道这么弄出来的系统到底快了多少!
谁想这么弄的话可真要事前三思啊! |
|
Back to top |
|
|
EricHsu Bodhisattva
Joined: 03 May 2004 Posts: 591 Location: Aragon Consulting Group, Beijing, China
|
Posted: Wed Jan 12, 2005 1:49 am Post subject: |
|
|
tecehux wrote: |
理论上是没错,可实际运行起来就不是说的这么简单了。我估计就我的机子,怎么也要四五天能整个装完!
而时间长也倒不是什么错,怕就怕出错,一个程序编译出错,就全都挂在那里了。
[snip]
最最关键的是:我不知道这么弄出来的系统到底快了多少!
谁想这么弄的话可真要事前三思啊! |
呵呵, 理解理解! 确实, 如果在初装系统时, bootstrap/emerge system 出错了, 解决之后, 继续就可以. 但是 emerge -e 则出错了就还是得从头来呀...
至于系统性能的变化, 我觉得还是得自己卯着劲 - 比如重建之前测一次性能, 重建之后测一次... 要解决问题/学到东西/得到结论都是需要有所付出的 _________________ - http://nkbit.com
- http://twitter.com/xuyihua |
|
Back to top |
|
|
tecehux n00b
Joined: 01 Nov 2004 Posts: 46 Location: Germany
|
Posted: Wed Jan 12, 2005 10:11 am Post subject: |
|
|
EricHsu wrote: |
至于系统性能的变化, 我觉得还是得自己卯着劲 - 比如重建之前测一次性能, 重建之后测一次... 要解决问题/学到东西/得到结论都是需要有所付出的 |
测是怎么测的?介绍一下 |
|
Back to top |
|
|
EricHsu Bodhisattva
Joined: 03 May 2004 Posts: 591 Location: Aragon Consulting Group, Beijing, China
|
|
Back to top |
|
|
blackwhite Apprentice
Joined: 24 Jun 2004 Posts: 250
|
Posted: Thu Mar 24, 2005 3:27 pm Post subject: |
|
|
BlueSand wrote: | LDFLAGS是用来制定动态Library调用的参数集,加入make.conf会提高程序的速度,不过也增加了链接出错的可能性。
不过我暂时没有遇到过,除了emacs,
更多的内容可以参考https://forums.gentoo.org/viewtopic.php?t=67777&highlight=ldflags |
有好几个程序。emerge gnome的时候就有个程序不可以用这个参数优化。基本上常用的程序我都编译过。后来我就把这个优化个给去掉了。 |
|
Back to top |
|
|
|