博客导读网

一个让你随便看看的地方

关于高版本的libtool v2.4的问题

推荐
My Study

因为生成so的问题,发现libtool v2.4生成代码时:
libtool --debug --tag=CXX --mode=link g++ -fPIC -g -O2 -g -Wall -D_DEBUG -shared -fpic -o libsotest.so libsotest_so-testso.o -lpthread -ldl -lcppunit
结果为:
g++ -fPIC -g -O2 -g -Wall -D_DEBUG -fpic -o libsotest.so libsotest_so-testso.o  -lpthread -ldl -lcppunit
而期望的结果应该是:
g++ -fPIC -g -O2 -g -Wall -D_DEBUG -shared -fpic -o libsotest.so libsotest_so-testso.o  -lpthread -ldl -lcppunit
低版本的libtool v1.5.22则没有这个问题,于是查找原因,经过分析,发现新版本的libtool对-shared选项有二处地方的变动,一处为func_mode_compile函数,主要是针对-shared的优化,
 2429     -shared | -static | -prefer-pic | -prefer-non-pic)
 2430       later+=" $arg"
 2431       continue
 2432       ;;
另外,在函数func_mode_link中
 6171       -shared)
 6172     # The effects of -shared are defined in a previous loop.
 6173     continue
 6174     ;;
如果得到上面的期望结果,则注释这条语句即可。

详细的问题描述见:http://my.huhoo.net/archives/2011/08/libtool.html

原文地址:http://my.huhoo.net/archives/2011/09/libtool_v24.html

My Study的其他文章
关于vncserver的一些问题 [ZT]人类无法抗拒的十大心理心理学效应
fedora16中如何将gnote图标自动添加信息栏 fedora各种版本的比较
fedora16中解决gnome-shell占用100%的问题 [ZT]服务价值
关于财付通接口在Discuz7.2版本无法使用的问题 新一代 Linux 文件系统 btrfs 简介
关于在firefox下SSL error renegotiation not allowed的问题 郁闷的SSH
更多...

© 2010 博客导读网 BlogABC.NET 本站所有内容皆由网友推荐而来,所有博文的版权归原作者所有,如有冒犯,请邮件告知。uncracker#gmail.com