ディレクトリ間で移植可能なソースをコンパイルする

ディレクトリ間で移植可能なソースをコンパイルする

サーバーをインストールしているのでnginx、配布する必要があります。そのため、エンド ユーザーは任意のディレクトリから実行できます。nginx実行ファイルは、コンパイル時に指定されたパスでハードコードされています。

これをポータブルにするにはどうすればいいでしょうか?

編集:

その実行ファイルに変更を加えたところ、nginx起動せず、代わりに次のようなエラーがスローされます。セグメンテーション違反のコアダンプ解決にご協力ください。

答え1

4つの選択肢が思い浮かびます:

  1. 相対ディレクトリを使用するようにアプリケーションをコーディングし、データ ディレクトリ ツリーの先頭から起動するように指定します。
  2. $HOMEデータの場所を定義するために環境変数を設定するように指定します (新しい明示的な変数を定義しない場合は、ディレクトリからの相対パスを使用できます)。
  3. .appまたは構成ファイルを使用して.config/app場所を指定します。
  4. 固定ディレクトリ パスを使用してコードを記述し、実際の場所を指すシンボリック リンクがこの場所に作成されるように指定します。

セグメンテーション違反に関しては、エラー チェック (ファイル ポインターが null でないことを確認するなど) を忘れたようです。

関連情報