0

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 で適切に動作するようです。しかし、その違いは、使用される言語以外の何かにあるかもしれません。

よろしく、 イズトク・ジェラス

4

1 に答える 1

0

この問題に対する単純な答えはありませんでした。最終的に、クロス コンパイルから QEMU エミュレート ARM 環境内のネイティブ コンパイラに切り替えました。これは、さまざまな Raspberry PI ユーザーによって提案されました。一方で、すべてのクロス コンパイラ ソリューションは新たな一連の問題を発見しました。

于 2016-09-22T18:29:02.780 に答える