关于fedora X11R6问题 编译不通

发布于 2022-09-22 11:18:03 字数 1525 浏览 12 评论 0

我在编译一个程序的时候,出现这个错误

/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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

傲性难收 2022-09-29 11:18:03

你没有安装X11库

一个人练习一个人 2022-09-29 11:18:03

X11库 不是默认安装的嘛?
-lx11他是不是再找libx11.so .6?
如果没有安装,怎么安装呢,我是fedora 8.

浮华 2022-09-29 11:18:03

所谓的库,其实是X11对应的头文件。
找一找类似libx11-dev之类的东西。。。

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

街角卖回忆 2022-09-29 11:18:03

对,我是骑着驴找驴,看看他的文档,到底把x11库 放在哪去了,也有可能没装,不过我是把开发库都装进去了?

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

怂人 2022-09-29 11:18:03

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

星光不落少年眉 2022-09-29 11:18:03

原帖由 glamor 于 2008-9-20 23:09 发表
对,我是骑着驴找驴,看看他的文档,到底把x11库 放在哪去了,也有可能没装,不过我是把开发库都装进去了?

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

在你的安装盘里找找看

情话墙 2022-09-29 11:18:03

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

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

许仙没带伞 2022-09-29 11:18:03

值得详细解释一下的是-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报错 是什么意思,麻烦大哥给说下。

蹲在坟头点根烟 2022-09-29 11:18:03

不行啊,出现这个错误

/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 大哥能否给传个。
给指条道路去找也可以。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文