1

私はこの質問を、ヘルパースクリプトに関する関連する質問に部分的に基づいて書いています。

autotoolsで構築されたC++ソ​​フトウェアシステムがあります。その機能のごく一部について、私のシステムはクローズドソースのビルド済みバイナリであるAMPLを使用しています。私は彼らのソフトウェアの自由に利用できる学生版です。C++コード内から呼び出すAMPLバイナリファイルの名前がであるとしますampl-student。呼び出しを使用して、コード内から実行しsystem(...)ます。

「makeinstall」を実行するときに、コンパイルしたC++コードのバイナリと一緒にampl-student移動したいと思います。Makefile.am/usr/binのどこに追加する必要がありますか。変数に追加するだけでいいですか?ampl-studentbin_PROGRAMS

関連する質問は、私も入れるべきかということampl-studentです/usr/bin。「ヘルパーバイナリ」のより適切な場所はありますか?

ビルド済みのバイナリをコードと一緒に配布しても、そのバイナリがエンドユーザーのコンピューターで実行されるとは限らないため、これは一般的に悪い考えだと思います。しかし、この場合、ユーザーベースは非常に小さく、すべて同じシステム構成を使用していることがわかります。そのため、実際には、ソフトウェアシステムの新しいリリースをすべての人に最新の状態に保つ方法としてdebパッケージを使用しています。

編集1:質問は、何よりもまず、autotoolsで使用されるMakefile.amampl-studentファイルのどこを指定するかを尋ねることであることを強調する必要があります。

4

2 に答える 2

6

私はそれをインストールし$(pkglibexecdir)ます:

pkglibexec_PROGRAMS = ampl-student

# If you need to know the path in your code
AM_CPPFLAGS = -DPKGLIBEXECDIR=\"$(pkglibexecdir)\"

これは実際にはユーザープログラムではないので、邪魔にならない場所にインストールします。デフォルトでは、これはになります$(prefix)/libexec/$(package)

于 2011-04-11T01:34:13.613 に答える
0

ソフトウェアを出荷するか、/ usr / binにローカルにインストールし、すべてのユーザーがそこからソフトウェアにアクセスするかによって、実際に異なります。

  1. / usr / binにインストールする予定で、AMPLもそこに配置する場合は、パスにシンボリック定数を定義して使用します。
    #define AMPL / usr / bin / ampl-学生
    は、使用したいソースファイルを追加できます
    。system(AMPL);
  2. コードのバイナリを出荷する場合は、ソフトウェアのbinディレクトリにampl-binを配置するか、ディレクトリを作成する必要があります。構造:

<あなたのツール>/src
<あなたのツール>/bin-ここにもampl-studentを置くことができます
<あなたのツール>/third-party / <tool1> .... <tooln> /bin/ここにampl-studentを置くことができます

ampl-studentを配布する前に正しく述べたように、ツールが実行されることになっているすべてのプラットフォームで機能します。

于 2011-04-11T00:06:50.860 に答える