
确认是否已经安装了相应的开发库。如果没有,请安装相应的库。例如,如果您使用的是 Ubuntu 系统,可以尝试安装 libc6-dev 库:
plaintext
Copy code
sudo apt-get install libc6-dev
如果已经安装了相应的库,但仍然无法找到 interrupt.h 文件,请使用 find 命令在系统中查找该文件:
plaintext
Copy code
sudo find / -name interrupt.h
这个命令将在系统中查找名为 interrupt.h 的文件,并输出其路径。如果找到了该文件,请将其路径添加到编译命令中:
plaintext
Copy code
gcc -o output file1.c file2.c /path/to/interrupt.h
如果您希望编译器能够自动搜索该文件,请将其路径添加到 CPATH 环境变量中:
plaintext
Copy code
export CPATH=/path/to/interrupt.h
这个命令将将 /path/to/interrupt.h 添加到 C 语言头文件搜索路径中,以便编译器能够自动找到该文件。
希望这些方法能够帮助您解决问题。
在linux下有时明明就看到文件在当前目录下,执行权限也没问题,你一执行它就提示no such file or directory!真是坑爹啊。
造成这个问题最大的可能性就是该文件引用的动态链接库不存在,比如在64位系统中执行一些32位的老程序,经常会出现找不到对应32库的问题,多见于gcc之类,这在很多新装的64位linux中都会出现(这一点linux不如windows),偏偏提示还不直接点。解决办法当然是补齐所需的库,比如安装386的gcc。
因此下次遇到这种问题可以先用file命令看下当前文件类型及其引用的动态库。
一般库文件问题大体两个原因
一,你的.so文件没有在 shared libtaty库 所以找不到
二, .so 文件 的 版本 和 要求的版本不对
1. ldd bwengine
2023 $ ldd bwengine
linux-vdso.so.1 => (0x00007ffdd95f6000)
libnsl.so.1 =>/lib/x86_64-linux-gnu/libnsl.so.1 (0x00007ff217e4d000)
libdl.so.2 =>/lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff217c49000)
libpthread.so.0 =>/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff217a2b000)
libstdc++.so.5 =>/usr/lib/x86_64-linux-gnu/libstdc++.so.5 (0x00007ff21774f000)
libm.so.6 =>/lib/x86_64-linux-gnu/libm.so.6 (0x00007ff217449000)
libgcc_s.so.1 =>/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff217233000)
libc.so.6 =>/lib/x86_64-linux-gnu/libc.so.6 (0x00007ff216e6e000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff218067000)
2. 假设找不到 /lib/x86_64-linux-gnu/libnsl.so.1
2024 $ file /lib/x86_64-linux-gnu/libnsl.so.1
/lib/x86_64-linux-gnu/libnsl.so.1: symbolic link to `libnsl-2.19.so'
3. 检查so文件的版本依赖
类似于"/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found"的错误之前也出现在了ubuntu上安装bw的时候。原来是系统自带的某些库的版本过高了(不得不安装了老版本的库才行)。
strings /lib/x86_64-linux-gnu/libcrypto.so.10|grep libcrypto.so
2026 $ strings /lib/x86_64-linux-gnu/libnsl.so.1|grep libnsl
libnsl.so.1
libnsl-2.19.so
4. 试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found"
./qmake: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qmake)
运行 strings /lib64/libc.so.6 |grep GLIBC_ 查看依赖的版本
运行 rpm -qa |grep glibc 查看最新版本信息
glibc-static-2.12-1.80.el6_3.6.x86_64
glibc-headers-2.12-1.80.el6_3.6.x86_64
glibc-common-2.12-1.80.el6_3.6.x86_64
安装 ../configure --prefix=/opt/glibc-2.14
临时修改环境变量 export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
最后测试程序是否可以运行
参见 : http://fanli7.net/a/bianchengyuyan/C__/20140412/490904.html
http://www.cnblogs.com/yingsi/p/3290958.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)