처음에이 오류는 나에게 정상적으로 보였지만 알려진 모든 것을 시도한 후에도 내 프로그램을 실행하는 데 아무런 운이 없었습니다. 그러니 자세히 설명해주십시오.java.lang.UnsatisfiedLinkError - 복수의 lib 파일을로드 중입니까?
우분투에서 TC의 자바 API를 사용하여 TC (TokyoCabinet) 예제를 실행하려고합니다. TC와 Tc-java가 제대로 빌드되어 내 홈 디렉토리에 설치되었습니다. (/ usr/local/lib가 아님).
내가 좋아하는 프로그램을 실행하고 -
$ java -Djava.library.path=/home/siddharth/tools/tc-java/lib -classpath ./bin/:lib/tokyocabinet.jar HdbTest
그리고 다음과 같은 오류가 -
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/siddharth/tools/tc-java/lib/libjtokyocabinet.so.1.1.0: /home/siddharth/tools/tc-java/lib/libjtokyocabinet.so.1.1.0: undefined symbol: tcversion
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:993)
at tokyocabinet.Loader.load(Loader.java:41)
at tokyocabinet.HDB.<clinit>(HDB.java:37)
at HdbTest.main(HdbTest.java:10)
을 지금이 오류가 상징 "tcversion"에 관한 것입니다. 그래서 나는 달렸다 -
$ nm /home/siddharth/tools/tc-java/lib/libjtokyocabinet.so.1.1.0 | grep -i tcversion
U tcversion
그것은 tcversion가 없다는 것을 의미한다. 사실 tcversion
내가이 라이브러리를 연결 할 수있는 방법, 질문은, 지금은 주 TC 라이브러리
$ nm /home/siddharth/tools/tc/lib/libtokyocabinet.so | grep -i tcversion
0008096c D tcversion
내부는?
설치 – kittylyst