Xilinx Zynq ボードを CodeSourcery armel (gnueabi) ツールチェーン (Vivado 2015.2 以降) から Linaro armhf に移行しているので、Debian/Ubuntu armhf (gnueabihf) をインストールできます。
を共有ライブラリにしようとするdlopen()
と、次のエラーが表示されます:dlsym()
dlerror()
/.../controller.so: undefined symbol: _ZTVN10__cxxabiv119__pointer_type_infoE
この問題は、CodeSourcery ツールチェーンでコンパイルされたソフトウェアが正常に動作しているときに、Linaro ツールチェーンが使用されている場合に発生します。
報告されたシンボルについて両方のライブラリをチェックしましたが、両方に存在します。
$ grep -r cxxabiv119__pointer_type_info .
./controller.so.armel.simbols:U _ZTVN10__cxxabiv119__pointer_type_infoE
./controller.so.armhf.simbols:U _ZTVN10__cxxabiv119__pointer_type_infoE
controller.so に C コードのみが含まれている (C++ コードが含まれていない) 場合、Linaro で適切に動作するようです。しかし、その違いは、使用される言語以外の何かにあるかもしれません。
よろしく、 イズトク・ジェラス