TOP
> 記事閲覧
AqKanji2Koe を ruby からロードできない
| 投稿日 | : 2014/03/16 14:23 |
| 投稿者 | : 井上 清晃 |
| 参照先 | : https://gist.github.com/saronpasu/9578872 |
| 件名 | : Re: AqKanji2Koe を ruby からロードできない |
| 投稿日 | : 2014/03/26 16:34 |
| 投稿者 | : 井上 清晃 |
| 参照先 | : https://gist.github.com/saronpasu/9778347 |
早速の対応、ありがとうございます。
> AqKanji2Koeのdlloadの前に、libstdc++.so.6 もロードしてください。(ファイルパスは環境に応じて)
ex)
>
> dlload '/usr/lib/x86_64-linux-gnu/libstdc++.so.6'
> dlload 'libAqKanji2Koe.so.2.0'
>
> たぶんこれで良いかと・・・
はい。ご指摘頂いた対応方法で、ロードが行えることが確認できました。
ありがとうございました。
正常にロードできたコードを書いておきます。
https://gist.github.com/saronpasu/9778347
> AqKanji2Koeのdlloadの前に、libstdc++.so.6 もロードしてください。(ファイルパスは環境に応じて)
ex)
>
> dlload '/usr/lib/x86_64-linux-gnu/libstdc++.so.6'
> dlload 'libAqKanji2Koe.so.2.0'
>
> たぶんこれで良いかと・・・
はい。ご指摘頂いた対応方法で、ロードが行えることが確認できました。
ありがとうございました。
正常にロードできたコードを書いておきます。
https://gist.github.com/saronpasu/9778347
| 件名 | : Re: AqKanji2Koe を ruby からロードできない |
| 投稿日 | : 2014/03/26 15:26 |
| 投稿者 | : 管理人 |
| 参照先 | : |
Undefinedの関数は、libgcc_sの関数ではなくて、libstdc++の関数でした。
AqKanji2Koeのdlloadの前に、libstdc++.so.6 もロードしてください。(ファイルパスは環境に応じて)
ex)
dlload '/usr/lib/x86_64-linux-gnu/libstdc++.so.6'
dlload 'libAqKanji2Koe.so.2.0'
たぶんこれで良いかと・・・
AqKanji2Koeのdlloadの前に、libstdc++.so.6 もロードしてください。(ファイルパスは環境に応じて)
ex)
dlload '/usr/lib/x86_64-linux-gnu/libstdc++.so.6'
dlload 'libAqKanji2Koe.so.2.0'
たぶんこれで良いかと・・・
| 件名 | : Re: AqKanji2Koe を ruby からロードできない |
| 投稿日 | : 2014/03/25 15:26 |
| 投稿者 | : 井上 清晃 |
| 参照先 | : https://gist.github.com/saronpasu/9741124 |
使っている Linux ディストリビューションは Ubuntu 13.10(64bit)です。
------------------------------
$ uname -a
Linux Ubuntu-Desktop 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
コアあたりのスレッド数:2
ソケットあたりのコア数:4
Socket(s): 1
NUMAノード: 1
ベンダーID: GenuineIntel
CPUファミリー: 6
モデル: 60
ステッピング: 3
CPU MHz: 800.000
BogoMIPS: 6186.15
仮想化: VT-x
L1d キャッシュ: 32K
L1i キャッシュ: 32K
L2 キャッシュ: 256K
L3 キャッシュ: 8192K
NUMA node0 CPU(s): 0-7
------------------------------
となります。
特別、古い環境というわけではないと思います。
度々、お手数をおかけしますがよろしくお願いいたします。
------------------------------
$ uname -a
Linux Ubuntu-Desktop 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
コアあたりのスレッド数:2
ソケットあたりのコア数:4
Socket(s): 1
NUMAノード: 1
ベンダーID: GenuineIntel
CPUファミリー: 6
モデル: 60
ステッピング: 3
CPU MHz: 800.000
BogoMIPS: 6186.15
仮想化: VT-x
L1d キャッシュ: 32K
L1i キャッシュ: 32K
L2 キャッシュ: 256K
L3 キャッシュ: 8192K
NUMA node0 CPU(s): 0-7
------------------------------
となります。
特別、古い環境というわけではないと思います。
度々、お手数をおかけしますがよろしくお願いいたします。
| 件名 | : Re: AqKanji2Koe を ruby からロードできない |
| 投稿日 | : 2014/03/25 15:19 |
| 投稿者 | : 管理人 |
| 参照先 | : |
「ZTVN10__cxxabiv120__si_class_type_infoE」というシンボルは、AqKanj2Koeから直接呼び出していないので、libgcc_s.so.1ライブラリの環境依存の可能性がありますね。
この場合rubyでなくても、単にGCCでCのプログラムをリンクした場合にも同様のエラーが出るものと思います。
お使いのLinuxのディストリビューションおよびバージョンは何でしょう?
今のAqKanji2Koe Linuxは、CenOS6.5 64bit版でビルド、動作確認していますので、ちょっと古い環境ではリンクできないかもしれません。
この場合rubyでなくても、単にGCCでCのプログラムをリンクした場合にも同様のエラーが出るものと思います。
お使いのLinuxのディストリビューションおよびバージョンは何でしょう?
今のAqKanji2Koe Linuxは、CenOS6.5 64bit版でビルド、動作確認していますので、ちょっと古い環境ではリンクできないかもしれません。
| 件名 | : Re: AqKanji2Koe を ruby からロードできない |
| 投稿日 | : 2014/03/24 23:28 |
| 投稿者 | : 井上 清晃 |
| 参照先 | : https://gist.github.com/saronpasu/9741124 |
ご返答ありがとうございます。
libgcc_s.so.1 に関しては、 Ruby からロードを行うこともできます。
Ruby 実行環境で、 libgcc_s.so.1 が認識できない状況ではないようです。
AqKanji2Koe をロード時に Ruby からデバッグ出力を行ったところ。次のようなエラーメッセージが出力されました。
---------------------
libAqKanji2Koe.so.2.0: undefined symbol:_ZTVN10__cxxabiv120__si_class_type_infoE
---------------------
Ruby内部からは、未定義のシンボルを呼び出されたようにデバッグ出力されています。
このデバッグメッセージの意味は理解できませんが。
もし、原因究明の一助となるのでしたら。
再度、ご対応のほど、お願いいたします。
念の為、Ruby2.1 にて。libgcc_s.so.1 がロードできたコードを掲載します。
https://gist.github.com/saronpasu/9741091
Ruby2.1 にて、 AqKanji2Koe を デバッグ出力でロードした際のコードを掲載します。
https://gist.github.com/saronpasu/9741124
ご多忙かと存じますが。
どうぞよろしくお願いいたします。
libgcc_s.so.1 に関しては、 Ruby からロードを行うこともできます。
Ruby 実行環境で、 libgcc_s.so.1 が認識できない状況ではないようです。
AqKanji2Koe をロード時に Ruby からデバッグ出力を行ったところ。次のようなエラーメッセージが出力されました。
---------------------
libAqKanji2Koe.so.2.0: undefined symbol:_ZTVN10__cxxabiv120__si_class_type_infoE
---------------------
Ruby内部からは、未定義のシンボルを呼び出されたようにデバッグ出力されています。
このデバッグメッセージの意味は理解できませんが。
もし、原因究明の一助となるのでしたら。
再度、ご対応のほど、お願いいたします。
念の為、Ruby2.1 にて。libgcc_s.so.1 がロードできたコードを掲載します。
https://gist.github.com/saronpasu/9741091
Ruby2.1 にて、 AqKanji2Koe を デバッグ出力でロードした際のコードを掲載します。
https://gist.github.com/saronpasu/9741124
ご多忙かと存じますが。
どうぞよろしくお願いいたします。

井上 清晃(いのうえ きよてる)と言います。
AqKanji2Koe(linux 64bit)のライブラリを
ruby からロードしようとしたところ。
"can't load" となり、読み込みが行えませんでした。
なお、 AquesTalk2(linux 64bit)ライブラリは
同様の方法で ruby からロードでき、実行もできています。
AquesTalk2ライブラリを読み込むことができたのに。
AqKanji2Koeライブラリを読み込むことができなかったので。
ruby 側ではなく、ライブラリ側の問題ではないかと推測しています。
使用したテストコードをURLで記載しておきます。
↓AqKanji2Koe ロードに失敗したコード↓
https://gist.github.com/saronpasu/9578872
↓AquesTalk2 ロードと実行に成功したコード↓
https://gist.github.com/saronpasu/9565563
ご多忙かと存じますが。
ご対応のほど、よろしくお願いいたします。