2

私はQtを使った個人的なプロジェクトで面白いことをやっています。私はこれの専門家ではないので、それがばかげた質問である場合(私は有用なものを見つけることができなかったと思います)、遠慮なく私を殺してください。

とにかく、私はOSXを使用しており、通常、次のコマンドでシェルスクリプトを使用して、静的バージョンのQtに対して最終バージョンをコンパイルします。

cd "project folder...";
PATH=/Users/TCB13/(...)/qt-source/bin:$PATH;  --> Path to my static QT.
export PATH;
qmake -config release; 
make; 
make clean;

これまでのところ、Qtをインストールせずにコンパイル済みのバイナリを別のコンピューターに移動すると、すべてが正常に機能します。;)

昨日、会社が提供するダイナミックライブラリをいじり始め、次のように.proファイルにdylibを含めました:(プロジェクトフォルダーにdylibのコピーがあります)

#macx: LIBS += -L$$PWD/ -lwpsapi

#INCLUDEPATH += $$PWD/
#DEPENDPATH += $$PWD/

そして、それを「静的に」コンパイルして(上記のコマンドを使用して)、他のコンピューターで実行すると、次のようになります。

dyld: Library not loaded: @executable_path/libwpsapi.dylib
 Referenced from: /Users/TCB13/Desktop/dude111
 Reason: image not found
Trace/BPT trap: 5

コンパイルされたバイナリのサイズがdylibを含めても含めなくても同じであることに気付いたので、外部libを含める方法をグーグルで検索し、.proファイルに「CONFIG +=static」を追加する必要があると言う人もいます。私はそれを行い、ファイルのサイズが大きくなりましたが、それでも同じエラーが発生しました。

誰かが私を助けてくれることを願っています。

4

1 に答える 1

2

エラーメッセージは非常に明確です。アプリケーションと一緒にlibwpsapi.dylibを配布する必要があります。これを回避したい場合は、このサードパーティライブラリのドキュメントを参照して、静的にリンクされたコードを使用するようにしてください。リンカに静的ライブラリをリンクするように指示しているという事実は、コードが参照されていることを意味するものではないことに注意してください。動的にロードされたライブラリを使用するために、コードに何らかのプリプロセッサ#define(またはデフォルト)があるのではないかと思います。

于 2011-11-20T22:33:31.377 に答える