저는 ArchLinux를 사용하고 있으며 OpenEdge 진행 드라이버를 설치하려고합니다. 그래서 PHP를 통해 액세스 할 수 있습니다. 나는 인 unixODBC 패키지와 드라이버를 설치했습니다,하지만 난 ISQL 또는 PHP를 통해 연결을 테스트 할 때, 내가 같은 오류가 ...unixodbc 드라이버 관리자가 설치할 때 지정된 라이브러리를 열 수 없습니다.
# isql -3 SUBS2A
[01000][unixODBC][Driver Manager]Can't open lib '/usr/dlc/odbc/lib/pgoe1023.so' : file not found
[ISQL]ERROR: Could not SQLConnect
위쪽 엉망 점은 "은/usr/DLC/ODBC입니다 /lib/pgoe1023.so "는 현재 존재하지만, 나는 심지어"/ usr/dlc "과 심볼릭 링크했다. 다음
은 (는 무관하다 나는 자격 증명의 일부를 제거)[ODBC-test]
Description = SUBS2A
Driver = SUBS2A
Server = 192.168.1.2
Port = 4000
APILevel=1
ConnectFunctions=YYN
CPTimeout=60
DriverODBCVer=03.60
FileUsage=0
SQLLevel=0
UsageCount=1
ArraySize=50
DefaultLongDataBuffLen=2048
DefaultIsolationLevel= READ COMMITTED
StaticCursorLongColBuffLen=4096
...
[SUBS2A]
Description = ODBC Driver for Progress
Driver = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1
ODBCINST.INI
ODBC.INI 내 .INI 파일입니다 수정 추가 정보 ...
Th ey은 내가 32 비트가되는 것처럼 보입니다. ,
[[email protected] etc]# file /usr/bin/isql
/usr/bin/isql: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, BuildID[sha1]=0xd1bc16c119 bb5cad6fea9e2a9abc1d06794a2775, stripped
[[email protected] etc]# file /usr/dlc/odbc/lib/pgoe1023.so
/usr/dlc/odbc/lib/pgoe1023.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
일부 종속성이 빠진 것처럼 않습니다 ...
[[email protected] lib]# ldd pgoe1023.so
linux-gate.so.1 => (0xb77c2000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7499000)
librt.so.1 => /lib/librt.so.1 (0xb7490000)
libpgicu23.so => not found
libdl.so.2 => /lib/libdl.so.2 (0xb748b000)
libstdc++-libc6.2-2.so.3 => not found
libm.so.6 => /lib/libm.so.6 (0xb745e000)
libc.so.6 => /lib/libc.so.6 (0xb72bc000)
/lib/ld-linux.so.2 (0xb77c3000)
UPDATE
내가는/usr/lib 디렉토리에 "libpgicu23.so"를 복사하고 그 문제를 해결 하지만 여전히 "libstdC++ - libc6.2-2.so.3"이 필요하지만 인터넷에서 라이브러리를 가져 왔을 때 "공유 라이브러리를로드하는 동안 오류가 발생했습니다 : /usr/lib/libstdc++-libc6.2-2.so. 3 : ELF 파일 OS ABI가 잘못되었습니다. "
실제로 "libstdC++ - libc6.2-2.so.3"에서 "libstdC++. so"로 심볼릭 링크를 만들었지 만 ldd를 통해 문제가 해결되었지만 isql을 쿼리 할 때이 오류가 발생했습니다.
isql: symbol lookup error: /usr/dlc/odbc/lib/pgoe1023.so: undefined symbol: __builtin_vec_new
* nix 상자에 ODBC를 설치 한 적이 없지만 Windows 상자에서 똑같은 작업을 수행하여 정상적으로 작동합니다. 모든 의견을 감사드립니다.
좋아요. 내 질문에 대한 추가 정보를 수정했습니다. 사실 내가 역순으로 ini 파일을 가지고 있기 때문에 이상한데 반대로하면 오류가 더 심해집니다 (DSN/드라이버를 찾을 수 없다). 그러나 내가 ldd를 실행할 때, 필자는 몇 가지 빠진 종속성을 얻었으므로이를 해결하려고 노력할 것입니다. 여기서 도움이 될만한 것이 있습니다. http://remidian.com/progress/progress-openedge-database-101b -install-on-centos-rhel.html – PolishHurricane
일반적으로 ini 파일에 잘못된 방법이 있지만 unixODBC로 드라이버 = XXX를 지정할 수 있으므로 xdb는 odbcint.ini 또는 드라이버의 항목입니다. = path_to_shared_object 당신이 그걸 가지고 도망갔습니다. 사실 모든 것이 32 비트 OS이지만, 당신은 당신의 누락 된 의존성을 되 살릴 수 있습니다. 당신이 한 일을 할 수없고 그것이 작동 할 것이라고 기대할 수 없습니다. ABI invalid는 호환되지 않는 공유 객체를 설치했음을 나타냅니다. 그것만큼 간단하지 않습니다. – bohica