、私は彼らがグラム++で構築されlibA.aとlibB.aグラム++、LDとJNI - リンクする問題
と呼ばれる2つのサードパーティのライブラリファイルを持っています。
今、私はJNIを使ってjavaから関数呼び出しを行う必要があります。
私はwrapper.cppというJNIラッパーファイルを持っていて、私のJavaプログラムにロードして関数呼び出しを行うことができるlibrary.soファイルを作成しようとしました。
私はまずg ++を使ってwrapper.cppをコンパイルし、ldを使ってすべてのオブジェクトファイルをリンクしようとしました。
これは私が使用したコマンドです。
%ld -L /usr/java/lib/ -L /lib/ -b wrapper.o libA.a libB.a -o wrapper.so -m
wrapper.oこれは、作成した
%g++ wrapper.cpp -I /usr/java/include/ -I /usr/java/include/solaris/ libA.a libB.a -L /lib/*.so -c
は、これは私に次のエラーを与える:これらのエラーをグーグルで
Undefined first referenced
symbol in file
_ZNKSsixEj wrapper.o
_ZNSt8ios_base4InitD1Ev wrapper.o
_ZNSt8ios_base4InitC1Ev wrapper.o
__gxx_personality_v0 wrapper.o
_ZNKSs4sizeEv wrapper.o
ld: fatal: Symbol referencing errors. No output written to wrapper.so
は:(
が誰かを教えてくださいすることができ助けにはなりませんどこが間違っていますか?
注:SunOS 5.10でg ++ 3.4.3を使用しています
Worked。ありがとう:) – JohnH