Скомпилировать исходный код как переносимый между каталогами

Скомпилировать исходный код как переносимый между каталогами

Я устанавливаю nginxсервер, мне нужно его распространить. Так что конечный пользователь может запустить из любого каталога. Мой nginxисполняемый файл жестко закодирован с моим путем, который мне был дан при компиляции.

Как сделать это портативным?

РЕДАКТИРОВАТЬ:

когда я внес изменения в этот nginxисполняемый файл, он не запустился, а вместо этого выдал ошибки типасегментация ошибка ядро ​​сброшено. Пожалуйста, помогите решить эту проблему.

решение1

На ум приходят четыре варианта:

  1. Запрограммируйте приложение на использование относительных каталогов и укажите, что его следует запускать из заголовка дерева каталогов данных.
  2. Укажите, что переменные среды должны быть установлены для определения местоположений данных (вы можете использовать относительный путь из каталога, $HOMEесли вы не хотите определять новые явные переменные).
  3. Используйте файл конфигурации .appили .config/appфайл конфигурации для указания местоположений.
  4. Введите код с фиксированным путем к каталогу и укажите, что в этом месте должна быть создана символическая ссылка, указывающая на реальные местоположения.

Что касается вашей ошибки сегментации, похоже, вы пропустили проверку ошибок (например, не убедились, что указатель файла не равен нулю).

Связанный контент