libaio.so.1:无法打开共享对象文件

我有一个简单的testing程序,当我运行我得到:

./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 hello:

 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,但似乎已经安装,所以有什么问题?

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

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

键入以下内容:

 sudo apt-get install libaio1 libaio-dev 

要么

 sudo yum install libaio 

我有同样的问题,事实证明,我没有安装图书馆。

这个链接是超级有用的。

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

在openSuse 12.3上,此解决方案还安装了32位版本的libaio。 甲骨文似乎现在需要这个,虽然在12.1它运行没有32位版本。

我有类似的问题。

我发现

conda安装pyodbc

是错的!

当我使用

apt-get install python-pyodbc

我解决了这个问题。

我必须做到以下几点(在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"