2017-07-13 18 views
0

私は別のQtプロジェクトに含まれているQt Creatorを使ってダイナミックライブラリを作成しましたが、例えばリソース内の.txtの内容を読み取るなど、 、 それは動作しません。Qtのリソースでダイナミックライブラリを作成して使用する

私は*.so*.aおよびライブラリプロジェクトフォルダ外の別のフォルダ内のファイルqrc_resources.cpp、例えば、作成された動的ライブラリのビルドしたら:

  • プロジェクトフォルダ:/home/username/Qt Project/library/
  • ビルドフォルダを: /home/username/Qt Project/build-library/

ビルドファイルをライブラリプロジェクトフォルダとテストプロジェクト(Qtアプリケーションプロジェクト)にコピーすると、私はriプロジェクトをクリック - >ライブラリを追加 - >外部ライブラリ - > .soファイルを選択します(私がコピーしたライブラリプロジェクトフォルダから)。

その後、ヘッダーファイルをインクルードし、qrcリソースからファイルの内容を読み取る関数を呼び出した後では機能しません。

UPDATE

私はリソースファイルはそれがないているに存在するかどうかをチェックするためにqfileによりを使用しますが、私はこのエラーを取得:QIODevice::read (QFile, ":/file.txt"): device not open

+1

使用されている技術とコードに関する情報を追加してください。あなたのアプローチを見直す簡単なコンパイル可能な例を提供してください。 –

+0

私はもう少し情報を含んでいます、それは十分ですか? –

+0

これはコンパイル可能なサンプルではなく、少なくとも私が知ったコンパイラではありません。それでも、テストアプリケーション内のライブラリressourceファイルにアクセスしようとしていますか? https://doc.qt.io/qt-5/resources.html#using-resources-in-a-library –

答えて

0

So私はifstreamオブジェクトの代わりにQFileオブジェクトを使用して、ファイルを開いて読み取ることで問題を解決することができました。

関連する問題