libaio.so.1: 공유 개체 파일을 열 수 없습니다.
실행 시 다음과 같은 간단한 테스트 프로그램이 있습니다.
./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가 필요한 것 같습니다만, 그것은 이미 설치되어 있는 것 같습니다만, 무엇이 문제입니까?
패키지를 인스톨 합니다.
sudo apt-get install libaio1 libaio-dev
또는
sudo yum install libaio
32/64비트의 미스매치인 것 같습니다.ldd 출력은 주로 라이브러리가/lib64
선택되었습니다.이는 64비트 버전의 Oracle 클라이언트를 설치하고 64비트 실행 파일을 생성했음을 나타냅니다.그렇지만libaio.so
는 아마도 32비트라이브러리이기 때문에 어플리케이션에서는 사용할 수 없습니다.
따라서 64비트 버전의 libaio가 필요하거나 32비트 버전의 응용 프로그램을 만들어야 합니다.
sudo 권한은 없지만 라이브러리를 설치해야 하는 경우.
다음을 사용하여 소프트웨어/라이브러리의 소스를 다운로드합니다.
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
앱의 LD_LIBRARY_PATH에 libaio 라이브러리를 포함합니다.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/lib/libaio/lib
이제 앱에서 libaio를 찾을 수 있습니다.그래서 1
저도 같은 문제가 있었는데, 알고 보니 도서관을 설치하지 않았어요.
이 링크는 매우 유용했습니다.
http://help.directadmin.com/item.php?id=368
Kubuntu 16.04.3에서는 다음과 같이 해야 했습니다.
- 라이브러리를 인스톨 합니다.
sudo apt-get install libaio1 libaio-dev
- 라이브러리의 인스톨 장소를 검색합니다.
sudo find / -iname 'libaio.a' -type f
--> 결과,/usr/lib/x86_64-linux-gnu/libaio.a
- 환경 변수에 결과 추가:
export LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib:/usr/lib/x86_64-linux-gnu"
여기 openSuse 12.3에서는 32비트 버전의 libaio를 추가로 설치했습니다.12.1에서는 32비트 버전 없이 실행되지만 Oracle에서는 현재 이 기능이 필요한 것 같습니다.
저도 비슷한 문제가 있어요.
찾았다
conda install pyodbc
틀렸어!
사용할 때
apt-get install python-pyodbc
나는 이 문제를 해결했다.
sudo yum install libnsl
날 위해 일했어https://github.com/knapsu/plex-media-player-appimage/issues/13
언급URL : https://stackoverflow.com/questions/10619298/libaio-so-1-cannot-open-shared-object-file
'source' 카테고리의 다른 글
@Directive vs @Component in Angular (0) | 2023.03.25 |
---|---|
.env 파일을 선택하지 않고 리액트 앱을 생성하시겠습니까? (0) | 2023.03.25 |
리액트 및 레일로 양식을 작성하는 방법 (0) | 2023.03.20 |
타이프스크립트 이미지 Import (0) | 2023.03.20 |
사이트를 설치할 수 없습니다. 일치하는 서비스 작업자가 검색되지 않았습니다. (0) | 2023.03.20 |