2017-08-22 6 views
5

私はopencvでC++アプリケーションを作成しようとしており、そのPCにOpencvがインストールされていない他のユーザーとアプリケーションを共有しようとしています。どうやってやるの?どのように私はOpenCvのビルドを1つのLinux PCで他のものに使うことができますか?

私が試した:

  1. を私はいくつかの/ home/myfolderなどパス内のすべてのヘッダファイル、ソースファイルとライブラリをコピーしました。
    1. 私はアプリケーションを作成し、/ home/myfolderに保存されているすべてのファイルをリンクしました。
    2. 実行時にアプリケーションがライブラリを検出できるように、環境変数LD_LIBRARY_PATHを.bashrcファイルの/ home/myfolderを指すように設定します。

私は自分のPC上でコンパイルすることができましたが、私はいくつかの他のPCと私のフォルダを共有し、すべてのライブラリをリンクするとき、私はOpenCVのための未定義の参照エラーが発生します。

おかげ

+0

同じアーキテクチャーで、アプリケーション自体を共有したいと仮定して、実行可能ファイルを別のPCに渡して実行しないのはなぜですか? (もちろん、OpenCVライブラリを静的にリンクする必要があります)。 – Yotam

+0

返事をありがとう。どちらのPCも64ビットです。実行可能ファイルのみを共有する場合、他のPCにはないopencvのようなすべてのライブラリにリンクする必要があります。だから私は環境変数を設定しています.bashrcには、OpenCvのlibファイルがありますが、未定義の参照エラーに直面しています。 – sumit

+0

スタティックリンクでコンパイルを試しましたか? – api55

答えて

0

この回答は、セキュリティの意味を持っています - 使用する前に、自分自身を通知し、唯一のプライベートネットワーク上で使用しています。


あなたはあなたのPCの中に他のユーザーsshを聞かせ-Xまたは-Yオプションを使用して、自分のマシンにX11接続を転送することができます。

ので、他のユーザーが行うだろう:

ssh -Y [email protected] yourApp 

あなたは、あなたのPC上の別のユーザーを作りたかったかどうか、あなたはあなたとしてログインしてその人を信頼するかどうかを考える必要がありますそのあなたの特定のアプリだけを動かすことができます。


別のオプションは、他のユーザが、彼は自分のマシン上で次のように入力して、お使いのPCへの彼のX11ディスプレイを利用できるようにさせるために次のようになります。

xhost + 

その後、あなたはあなたにあなたのアプリを起動することができマシンは、彼のマシンに転送表示して - 彼はあなたのマシンにログインしたり、パスワードを持っている必要はありません。そのように:

DISPLAY=<otherPC>:0 yourApp 
1

答えは静的リンクです。実行可能なサイズが気にせず、ターゲットマシンに必要なライブラリがない場合は、実行可能ファイルの中にそれらを指定してください。 thisの質問を参考にしてください。

関連する問題