GNUTLS или libuuid отсутствуют при сборке воина задач из исходного кода в Windows 10 - PullRequest
0 голосов
/ 02 июля 2018

Последние 4 дня я работал над тем, чтобы сервер Taskwarrior и Taskwarrior работал на Windows 10. Это оказалось довольно сложной задачей для меня.

Я выполнил шаги, описанные ниже: «Построение стабильной версии» на https://taskwarrior.org/docs/build.html и создал папку:

C:\taskwarrior

Открытая командная строка разработчика для VC 2017

cd /d C:/taskwarrior

git clone https://github.com/GothenburgBitFactory/taskwarrior.git taskwarrior.git

cd taskwarrior.git

git checkout master

И затем, в зависимости от того, пытаюсь ли я создать Taskwarrior с включенной синхронизацией (автоматически, если не отключено вручную):

cmake -DCMAKE_BUILD_TYPE=release .

GNUTLS_library отсутствует

или:

cmake -DCMAKE_BUILD_TYPE=release . -DENABLE_SYNC=OFF

- libuuid не найден.

Краткое описание следующих шагов и попыток:

  1. Загрузил и установил распространяемый Microsoft Visual C ++ 2017 (x64 и x86) из: https://visualstudio.microsoft.com/vs/features/cplusplus/
  2. Гарантированный cl был доступен, как предложено в документации Microsoft: https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx
  3. Скачал менеджер установки MinGW и установил базовый пакет, как было предложено для http://www.mingw.org/wiki/Getting_Started:

Если вы хотите установить обязательный набор mingw-get-inst.exe, (включая компилятор GNU C, отладчик GNU (GDB) и GNU make tool), вы должны выбрать для установки пакет mingw-base.

  1. Установка Cmake из https://cmake.org/download/
  2. Запуск команд, описанных выше, из cmd в режиме администратора
  3. Открытие Cmake с выбором исходной папки:

    C:/taskwarrior/taskwarrior.git

С папкой для сборки:

C:/taskwarrior

Это дало те же самые ошибки, что и при попытке выполнить это через командную строку разработчика для VC 2017, описанную выше, из которой я заключаю, что в моих командах, описанных выше, нет опечатки.

  1. Даже если он уже установлен с Mingw, GNU все еще не найден (даже после перезагрузки). Поэтому я попытался загрузить его вручную с:
  2. http://gnuwin32.sourceforge.net/packages/make.htm
  3. https://sourceforge.net/projects/gnuwin32/

  4. И я попробовал следующие команды из командной строки:

    install libgnutlsxx28 gnutls-dev install gnutls-dev

  5. Как было предложено в файле установки в Taskwarrior для дистрибутивов на основе Debian, я попытался:

    libgnutls-dev

    При открытии программы установки IncrediBuild версии 9.2.1, я в настоящее время не знаю, что это делает.

  6. Я попытался загрузить библиотеку libuuid из: https://sourceforge.net/projects/libuuid/, но в настоящее время я не знаю, как ее собрать и установить.

  7. Я пытался установить его через python в cmd с помощью:

    easy_install python-libuuid

  8. Изучение построения программ из исходного кода: https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx

  9. Обучение и практика с https://github.com/codebox/bitmeteros/wiki/How-to-build-on-Windows.
  10. В конце я узнал, что у меня уже установлена ​​ Cygwin и что я могу просто установить старую версию Taskwarrior, переустановив Cygwin и отметив / пометив пакет задач. Итак, у меня работает TaskWarrior, но не сервер TaskWarrior. Более того, я пытаюсь научиться создавать код / ​​проекты из исходного кода, поэтому я пытаюсь сделать успешную сборку, чтобы улучшить свой набор навыков и, следовательно, набор инструментов.
  11. Расширение для установки GNU TLS 3.6.2 на https://www.gnutls.org/manual/gnutls.html#Downloading-and-installing ограничено:

Затем пакет извлекается, настраивается и собирается, как и многие другие пакеты, использующие Autoconf. Подробную информацию о настройке и сборке см. В файле INSTALL, который является частью архива дистрибутива. Обычно вы вызываете ./configure, а затем выполняете проверку установки.

Однако последний загружаемый файл GNUTLS для Windows x64: последняя версия w64 на gitlab on: https://www.gnutls.org/download.html с именем artifacts.zip не содержит файла с именем INSTALL.

Так что в настоящее время я работаю над пониманием того, как настроить и построить с помощью autoconf.

Вопрос: Знаете ли вы, как я могу установить библиотеку GNU и / или библиотеку libuuid в Windows 10?

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Я не уверен, что это все еще имеет отношение к вашей проблеме, но я смог собрать taskwarrior v2.5.1 под 64-битным Cygwin (на Win7), используя строку cmake отсюда: TW -1845 Сбой сборки Cygwin, отсутствует get_current_dir_name

А именно, за этой строкой cmake следует make:

cmake -DHAVE_GET_CURRENT_DIR_NAME=0
0 голосов
/ 04 июля 2018

Я, вероятно, неправильно понял контекст. GnuTLS Похоже, это программа, которая работает / сделана для операционной системы Linux / Debian.

Тем не менее, следующие два решения были эффективны в:

  1. Поиск и использование библиотеки UUID в Windows.
  2. Решение проблемы XY и использование GnuTLS на «Windows PC» (с Linux на нем).:

Для отсутствующего UUID отсутствует ошибка библиотеки:

  1. Откройте проводник> перейдите на C: (или другой системный диск)> найдите: uuid.lib> Запомните путь к файлу / any uuid.lib. (Для меня C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib worked)
  2. Откройте Cmake и в UUID_LIBRARY_DIR введите:
  3. C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib
  4. Затем в UUID_LIBRARY введите: C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib/Uuid.Lib Где вы заменили C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib на путь, который вы нашли для своего UUID.lib на шаге 1.

Это позволило CMake преодолеть ошибку UUID в Windows.

Теперь для GnuTLS я не смог найти решение в самой Windows. Но когда я читаю руководство по установке сервера задач: https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/4/4 Я узнал, что Taskwarrior не предназначен для работы в самой Windows / изначально, а в среде linux (В частности, дистрибутив linux Ubuntu рекомендуется устанавливать в windows, как указано здесь: https://taskwarrior.org/download/) требуется 1 нажмите, чтобы полностью загрузить и установить дистрибутив linux (который сейчас мне кажется эмулятором).

В магазине Windows можно загрузить Ubuntu и другие дистрибутивы Linux как Debian GNU / Linux: https://docs.microsoft.com/en-us/windows/wsl/install-win10. Поскольку у меня было немало трудностей с установкой GnuTLS, я попробовал дистрибутив Debian GNU / Linux, надеясь, что это будет предустановлен в дистрибутив. Следующие команды успешно установили taskwarrior и GnuTLS и Taskserver в Debian GNU / Linux:

  1. sudo apt-get update
  2. sudo apt-get install taskwarrior
  3. cd /home/a/
  4. затем создайте новый каталог 'taskwarrior'
  5. mkdir taskwarrior
  6. cd /home/a/taskwarrior

    Установка сервера задач в Debian:

  7. sudo apt install g++

  8. sudo apt install libgnutls28-dev
  9. sudo apt install uuid-dev
  10. sudo apt install cmake
  11. **sudo apt install gnutls-utils**

Гнатлс не удалось так:

  1. **sudo apt-get update**
  2. **sudo apt install gnutls-utils**
  3. sudo apt-get update
  4. sudo apt-get install git-core

Источник: https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/6/1 предлагает вам ввести: git clone --recurse-submodules=yes https://github.com/GothenburgBitFactory/taskserver.git taskserver.git, который выдал следующую ошибку: option recurse-submodules takes no value, поэтому переписать его на:

  1. git clone https://github.com/GothenburgBitFactory/taskserver.git taskserver.git

  2. cd taskserver.git/

  3. git checkout master

  4. cmake -DCMAKE_BUILD_TYPE=release .

  5. make

Теперь вы можете протестировать сборку, как описано в: https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/6/8 Примечание: SOURCEDIR теперь называется home / a / taskwarrior / taskserver.git (/ test В настоящее время я не знаю, является ли / test подпапкой исходного или фактического исходного каталога)

  1. sudo make install

Примечание: Вы можете проверить установку GnuTLS с помощью:

  1. task diagnostics | grep libgnutls
  2. sudo apt install taskd

Осталось без ответа Вышеуказанное отвечает только на половину моего вопроса (и решает XY-проблему ). Установка GnuTLS на самой Windows до сих пор не решена. В настоящее время я не уверен насчет загрузки

GNU для Windows

Последняя версия w64 для gitlab gnutls_3_6_0_1: mingw64

по https://gnutls.org/download.html.

  1. Он содержит папку lib и bin, что, по-видимому, указывает на то, что даже файлы, перечисленные в разделе «windows», предназначены для операционной системы Linux (ОС) (так как я думаю, что эти типы папок не используются, обычно используемые в windows / Я не знаю что с ними делать / как их устанавливать).
  2. Это будет означать, что GnuTLS предполагает, что единственное применение GnuTLS, даже в операционной системе Windows происходит в Linux система. Это может быть просто моим отсутствием знание / работа / понимание того, как использовать / устанавливать эти файлы в окна.

Так что, если кто-то еще может ответить, как GnuTLS на окнах предназначен для применения, я был бы очень признателен за понимание!

...