免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7982 | 回复: 17
打印 上一主题 下一主题

关于fedora X11R6问题 编译不通 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-20 20:26 |只看该作者 |倒序浏览
我在编译一个程序的时候,出现这个错误
/usr/bin/ld: cannot find -lX11
pgf90-Fatal-linker completed with exit code 1

应该是这个程序依赖于x11R6 但是fedora改变了这个目录,有哪位大哥知道改到哪去吗。

我把 usr/lib 目录下的文件拷到/usr/X11R6/lib 也不行。
编译的最后是
pgf90 -o rams-6.0-opt rammain.o -v -Wl,-static -Wl,-zmuldefs rams-6.0-opt.a \
        ./utils/libutils-2.4-opt.a -L/usr/local/ncarg/lib -lncarg -lncarg_gks -lncarg_c -L/usr/X11R6/lib -lX11 -lpthread -ldl -lc -lgcc_eh -lXau -lXdmcp  -L/usr/X11R6/lib -lX11 -L/home/yang/rams/hdfs/lib  -lhdf5 -lz -lm

/usr/bin/ld /usr/lib/crt1.o /usr/lib/crti.o /opt/pgi/linux86/7.1-6/lib/trace_init.o /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbegin.o /opt/pgi/linux86/7.1-6/lib/f90main.o -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /opt/pgi/linux86/7.1-6/lib/pgi.ld -L/usr/local/ncarg/lib -L/usr/X11R6/lib -L/usr/X11R6/lib -L/home/yang/rams/hdfs/lib -L/opt/pgi/linux86/7.1-6/lib -L/usr/lib -L/usr/lib/gcc/i386-redhat-linux/4.1.2 rammain.o -static -zmuldefs rams-6.0-opt.a ./utils/libutils-2.4-opt.a -lncarg -lncarg_gks -lncarg_c -lX11 -lpthread -ldl -lc -lgcc_eh -lXau -lXdmcp -lX11 -lhdf5 -lz -lm -rpath /opt/pgi/linux86/7.1-6/lib -o rams-6.0-opt -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lpgsse1 -lpgsse2 -lnspgc -lpgc -lrt -lpthread -lm -lgcc -lc -lgcc /usr/lib/gcc/i386-redhat-linux/4.1.2/crtend.o /usr/lib/crtn.o
/usr/bin/ld: cannot find -lX11
pgf90-Fatal-linker completed with exit code 1

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2008-09-20 20:41 |只看该作者
你没有安装X11库

论坛徽章:
0
3 [报告]
发表于 2008-09-20 22:46 |只看该作者
X11库 不是默认安装的嘛?
-lx11他是不是再找libx11.so .6?
如果没有安装,怎么安装呢,我是fedora 8.

论坛徽章:
0
4 [报告]
发表于 2008-09-20 22:57 |只看该作者
所谓的库,其实是X11对应的头文件。
找一找类似libx11-dev之类的东西。。。

原帖由 glamor 于 2008-9-20 22:46 发表
X11库 不是默认安装的嘛?
-lx11他是不是再找libx11.so .6?
如果没有安装,怎么安装呢,我是fedora 8.

论坛徽章:
0
5 [报告]
发表于 2008-09-20 23:09 |只看该作者
对,我是骑着驴找驴,看看他的文档,到底把x11库 放在哪去了,也有可能没装,不过我是把开发库都装进去了?

要是有x11r6/lib各个库的介绍就好了,也知道软件在时候的时候带的类似 -lx11到底是在找哪个文件。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2008-09-20 23:34 |只看该作者

回复 #4 freearth 的帖子

.........a文件,so文件

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2008-09-20 23:52 |只看该作者
原帖由 glamor 于 2008-9-20 23:09 发表
对,我是骑着驴找驴,看看他的文档,到底把x11库 放在哪去了,也有可能没装,不过我是把开发库都装进去了?

要是有x11r6/lib各个库的介绍就好了,也知道软件在时候的时候带的类似 -lx11到底是在找哪个文件。

在你的安装盘里找找看

论坛徽章:
0
8 [报告]
发表于 2008-09-21 09:25 |只看该作者
看错了,我以为是由于没有头文件的问题。原来是ld报的错。

原帖由 cjaizss 于 2008-9-20 23:34 发表
.........a文件,so文件

论坛徽章:
0
9 [报告]
发表于 2008-09-21 09:39 |只看该作者
值得详细解释一下的是-l选项,它指示gcc去连接库文件david.so。Linux下的库文件在命名时有一个约定,那就是应该以lib三个字母开头。由于所有的库文件都遵循了同样的规范,因此在用-l选项指定链接的库文件名时可以省去lib三个字母。也就是说gcc在对-l david进行处理时,会自动去链接名为libdavid.so的文件。

Linux下的库文件分为两大类,分别是动态链接库(通常以.so结尾)和静态链接库(通常以.a结尾),两者的差别仅在于程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。默认情况下,gcc在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库。


我的/usr/lib下 只有libx11.so但没有libx11.a 但是看上述一句话应该是只需要libx11.so就可以了,难道这个程序优先使用静态链接库?
先不管了直接立一个名为/usr/local/lib/libX11.a的链接:
ln -s /usr/X11R6/lib/libX11.so /usr/local/lib/libX11.a

看错了,我以为是由于没有头文件的问题。原来是ld报的错

ld报错 是什么意思,麻烦大哥给说下。

论坛徽章:
0
10 [报告]
发表于 2008-09-21 10:30 |只看该作者
不行啊,出现这个错误
/usr/bin/ld: attempted static link of dynamic object `/usr/X11R6/lib/libX11.a'
pgf90-Fatal-linker completed with exit code 1

好像必须是libX11.a才可以,现在找不到这个东西,freearth 和cjaizss 大哥能否给传个。
给指条道路去找也可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP