プロジェクトディレクトリ内に作成した(「共有」)フォルダーに共有ライブラリ(Ubuntu)を含む製品を出荷する必要があります。つまり、、、などにない共有ライブラリです。ファイル内、つまり/usr/lib
/usr/local/lib
.pro
LIBS += -Lshared/gsl -lgsl -lgsl_cblas
注意:実行ファイルは「共有」フォルダと同じディレクトリにあります。QtCreator からデバッグ モードでプログラムを起動すると、すべてが機能します。さらに、「共有」のライブラリを削除または名前変更すると、プログラムの起動に失敗します。また、アプリがこれらのライブラリを他の場所で見つけられないことも確認しました。しかし、コマンドラインから起動すると、
共有ライブラリの読み込み中にエラーが発生しました: libgslcblas.so.0: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
どうしたの?
編集:解決策は、コメントで開発されたように、以下のライオンベストのバリエーションです。何らかの理由で、私のプラットフォームではqmake
/QMAKE_FLAGS
はリンカー オプションの特定の形式のみを許可し、人々が使用した他のインスタンスについてグーグルで検索したものは許可しないことがわかりましたQMAKE_FLAGS
。すなわち、
QMAKE_FLAGS += "-Wl,-rpath,\'\$$ORIGIN/shared/gsl\'"
QMAKE_LFLAGS_RPATH=
具体的には、パーサー (またはリンカー) が を受け入れないという問題がありました-rpath=...
。Ubuntu 12.04、gcc 4.6.3、Qt 4.8.0、QtCreator 2.4.1「Qt 4.7.4 ベース」。この経験が他の誰かの同じフラストレーションを救うことができることを願っています.