0

mac os x 10.12 (Sierra) と qt 5.8 for ARM (rasprerry pi) を使用してクロス コンパイルを管理しました。ただし、問題が発生しなければ簡単すぎます。非常に単純なアプリを作成し、qt クリエーターからリモートで実行するように環境を構成しますが、実行しようとするとエラーが発生します。

Cannot load library /usr/local/qt5pi/plugins/platforms/libqeglfs.so: (This platform does not support dynamic libraries.)
QLibraryPrivate::loadPlugin failed on "/usr/local/qt5pi/plugins/platforms/libqeglfs.so" : "Cannot load library /usr/local/qt5pi/plugins/platforms/libqeglfs.so: (This platform does not support dynamic libraries.)"
This application failed to start because it could not find or load the Qt platform plugin "eglfs"
in "".

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc.

Reinstalling the application may fix this problem.
Aborted

プラグインが適切にロードされているようです:

QT_DEBUG_PLUGINS=1 ./testrpi 
QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5pi/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 329728
}

しかし、私はこの行がすべてを説明していると思います:

QLibraryPrivate::loadPlugin failed on "/usr/local/qt5pi/plugins/platforms/libqeglfs.so" : "Cannot load library /usr/local/qt5pi/plugins/platforms/libqeglfs.so: (This platform does not support dynamic libraries.)"

そして今私の質問は - 「このプラットフォームは動的ライブラリをサポートしていません」とはどういう意味ですか. アプリを機能させるにはどうすればよいですか?

ldd はすべてのライブラリが存在することを示しますが、strace は否定的な結果で開いていることを示しません。私は立ち往生しているので、助けていただければ幸いです!

4

1 に答える 1

-1

OK問題はqtbase/src/corelib/plugin/qtlibrary_unix.cppファイルのqtcorelibのビルドにあり、そのフラグは次のとおりです。

#define QT_NO_DYNAMIC_LIBRARY

定義され、すべての問題を引き起こしました。解決策はundef QT_NO_DYNAMIC_LIBRARY、このqtcoreライブラリを定義して再構築した直後に実行することでした.

よろしくJ

于 2016-12-13T20:13:39.627 に答える