我正在试图编译一个程序,但是链接失败了,下面的消息如下:
gcc -O2 -pipe -Wl,--导出-动态tkAppInit.o -O2 -ltk8.5 \ -L/home/dimitriv/ns-allinone-2.35/tcl8.5.10/unix -ltcl8.5 -lX11 -ldl -lieee -lm -Wl,-rpath,/home/dimitriv/ns-allinone-2.35/lib -o W愿/usr/bin/ld:无法找到-lX11 collect2:错误: ld返回1退出状态
但是,我的$LD_LIBRARY_PATH包含安装X11的目录:
回波$LD_LIBRARY_PATH /share/apps/cim/lib:/opt/ns2/otcl-1.13:/opt/ns2/lib:/home/dimitriv/local/lib:
图书馆的安装似乎是正确的。
ls /home/dimitriv/local/lib \ grep X11 libX11.a libX11.la libX11.so libX11.so.6 libX11.so.6.3.0 libX11-xcb.a libX11-xcb.la libX11-xcb.so libX11-xcb.so.1 libX11-xcb.so.1.0.0 X11
为什么不能定位库并进行链接?
发布于 2012-12-21 08:32:24
正如您在编译命令本身中看到的那样:
gcc -O2 -pipe -Wl,--export-dynamic tkAppInit.o -L/home/dimitriv/ns-allinone-2.35/tk8.5.10/unix -ltk8.5 \
-L/home/dimitriv/ns-allinone-2.35/tcl8.5.10/unix -ltcl8.5 -lX11 -ldl -lieee -lm -Wl,-rpath,/home/dimitriv/ns-allinone-2.35/lib -o wish这条路
-L/home/dimitriv/local/lib不在您的added.Add文件中,然后检查它。
发布于 2012-12-21 08:35:04
LD_LIBRARY_PATH包含指向共享库的路径,加载程序(ld程序)使用这些路径来执行程序。
在编译期间,使用包含目录。在链接期间,需要对象库。最后一个是你错过的那种。
您可能需要安装一个包才能获得X11开发库。在Linux上,这个包称为libX11-devel。要安装,
sudo yum install libX11-devel # for Redhat, Fedora, etc.或
sudo apt-get install libX11-devel # for Ubuntu, etc.发布于 2018-12-15 18:19:07
解决方案:使用
sudo apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wgethttps://stackoverflow.com/questions/13986636
复制相似问题