64 비트 용 Linux GPIB에 Libgpibapi-so가 없는 이유는 무엇입니까?

업데이트 됨 Mar 25, 2020

해당 제품

운전사

  • NI-488.2

운영 체제

  • Linux

프로그래밍 언어

  • C
  • C++

문의사항

Linux에서 32 비트에 GPIB를 사용하고 있었습니다. 이번에는 64 비트로 변경하고 64 비트에 대한 드라이버를 설치했지만 libgpibapi.so를 찾을 수 없습니다. 왜 이런 일이 발생합니까?
 

해결책

Linux 용 NI-488.2 15.1 버전을 기준으로 볼때, 아래 항목이 각각 32 비트 및 64 비트에 설치됩니다.
  • 32 비트
$ rpm -ql ni4882i-15.1.0-f0.i386 | grep lib
/ usr / local / natinst / ni4882 / lib
/usr/local/natinst/ni4882/lib/cib.o
/usr/local/natinst/ni4882/lib/libgpibapi.so.15.1.0
/usr/local/natinst/ni4882/lib/libgpibenumsvc.so.15.1.0
/usr/local/natinst/ni4882/lib/liblvgpibconf.so.15.1.0
/usr/local/natinst/ni4882/lib/libni4882.so.15.1.0
/usr/local/natinst/ni4882/lib/libni488config.so.15.1.0
/usr/local/natinst/ni4882/lib/libniGPIBsys.so.15.1.0
/usr/local/natinst/ni4882/lib/ni4882.o
  • 64 비트
$ rpm -ql ni4882i-15.1.0-f0.x86_64 | grep lib
/ usr / local / natinst / ni4882 / lib64
/usr/local/natinst/ni4882/lib64/libni4882.so.15.1.0
/usr/local/natinst/ni4882/lib64/libni488config.so.15.1.0
/usr/local/natinst/ni4882/lib64/libniGPIBsys.so.15.1.0
/usr/local/natinst/ni4882/lib64/ni4882.o
[usernet @ swdev1 natinst] $

64 비트 용 Linux GPIB 드라이버를 설치 한 경우 libgpibapi.so가 설치되지 않는 것이 정상입니다.
NI 488.2 User Manual 에는 다음과 같은 설명이 있습니다.
Windows 2.6 용 NI-488.2, Linux 3.2 용 NI-488.2 및 Mac OS X 3.2 용 NI-488.2는 공식적으로 64 비트 어플리케이션 인터페이스의 일부로 새로운 API가 추가 되었습니다. API 디자인 모범 사례를 통합하면서 새로운 NI4882 API가 기존 GPIB32 API와 거의 일치하도록 노력을 기울였습니다. 새 API를 사용하려면 새 헤더 및 객체 파일을 사용하여 응용 프로그램을 다시 컴파일해야합니다.

NI4882 API를 사용하도록 기존 어플리케이션을 수정하려면 코드의 변경이 필요할 수도 있습니다. 대부분의 경우 새로운 파일(ni488.h 대신 ni4882.h)을 포함 하고 새 객체 파일에 연결합니다.
(Windows) gpib-32.obj 대신 ni4882.obj
(Linux) libgpibapi.so 대신 libni4882.so
(OS X) ni488.framework 대신 ni4882.framework

따라서 기존 코드를 재사용하려면 헤더 파일과 객체 파일을 변경하고 다시 컴파일해야합니다. 두 라이브러리의 차이점을 확인하려면 NI 488.2 User Manual 을 참조하십시오.