libaio.so.1:无法打开共享对象文件(libaio.so.1: cannot open sh

2019-07-29 10:28发布

我有一个简单的测试程序,当我跑我得到:

./hello: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

我链接这样的:

$(CC) $(CCFLAGS) -o hello hello.o -L../ocilib-3.9.3/src/.libs -L../instantclient_11_2 -locilib

我的LD_LIBRARY_PATH包含此:

LD_LIBRARY_PATH=../ocilib-3.9.3/src/.libs:../instantclient_11_2:/usr/lib

/ usr / lib目录如下所示:

Linux$ ls -l /usr/lib/libaio*
lrwxrwxrwx  1 root root   15 Nov  5  2008 /usr/lib/libaio.so.1 -> libaio.so.1.0.1
-rwxr-xr-x  1 root root 2632 Sep 16  2005 /usr/lib/libaio.so.1.0.0
-rwxr-xr-x  1 root root 2628 Sep 16  2005 /usr/lib/libaio.so.1.0.1

LDD打招呼的输出:

libocilib.so.3 => ../ocilib-3.9.3/src/.libs/libocilib.so.3 (0x0000002a95558000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000003811200000)
libclntsh.so.11.1 => ../instantclient_11_2/libclntsh.so.11.1 (0x0000002a956c4000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
libnnz11.so => ../instantclient_11_2/libnnz11.so (0x0000002a97f56000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003811500000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000003811700000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000003811b00000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003819000000)
libaio.so.1 => not found

我希望我失去了一些东西简单在这里。 oracle的instantclient包似乎需要libaio的,但似乎要安装已经这么有什么问题呢?

Answer 1:

它看起来像一个32/64位不匹配。 所述LDD输出显示主要来自库/lib64被选择。 这将表明您已经安装了Oracle客户端的64位版本,并创建了一个64位可执行文件。 但是libaio.so可能是一个32位的库,不能用来为您的应用。

所以,你要么需要的libaio的64位版本或创建应用程序的32位版本。



Answer 2:

键入以下命令:

sudo apt-get install libaio1 libaio-dev

要么

sudo yum install libaio


Answer 3:

我有同样的问题,而且事实证明我没有安装该库。

这个环节是超级有用的。

http://help.directadmin.com/item.php?id=368



Answer 4:

我不得不做以下(在Kubuntu的16.04.3):

  1. 安装库: sudo apt-get install libaio1 libaio-dev
  2. 查找安装了库: sudo find / -iname 'libaio.a' -type f - >导致/usr/lib/x86_64-linux-gnu/libaio.a
  3. 添加结果环境变量: export LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib:/usr/lib/x86_64-linux-gnu"


Answer 5:

这里上的openSUSE 12.3该溶液除了安装的libaio的32位版本。 甲骨文似乎需要这个现在,虽然它12.1运行没有32位版本。



Answer 6:

我有一个类似的问题。

我发现

康达安装pyodbc

是错的!

当我使用

易于得到安装python-pyodbc

我解决了这个问题。



Answer 7:

如果一个人没有须藤权限,但仍然需要安装库。

下载源使用的软件/库:

apt-get source libaio

要么

wget https://src.fedoraproject.org/lookaside/pkgs/libaio/libaio-0.3.110.tar.gz/2a35602e43778383e2f4907a4ca39ab8/libaio-0.3.110.tar.gz

解压缩库

用下面的命令,以用户特定的库安装:

make prefix=`pwd`/usr install #(Copy from INSTALL file of libaio-0.3.110)

要么

make prefix=/path/to/your/lib/libaio install

包括libaio的库到LD_LIBRARY_PATH为您的应用程序:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/lib/libaio/lib

现在,您的应用程序应该能够找到libaio.so.1



文章来源: libaio.so.1: cannot open shared object file
标签: linux oracle oci