Не может сделать Привязь Clockwordmod на Ubuntu 16.10

Я пытаюсь установить Привязь Clockwordmod на своем ноутбуке Ubuntu 16.10 для упрощения USB, ограничивающего с соответствующим приложением на Google Play.

Я загрузил и извлек файл tar Привязи. Инструкции для установки очень просты. Просто выполните следующее в терминале:

cd /home/username/Tether/node
./configure
make

Но когда я работаю make, это всегда заканчивается по этой ошибке:

../deps/v8/src/checks.h:251:22: warning: typedef ‘__StaticAssertTypedef__125’ locally defined but not used [-Wunused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
../deps/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
../deps/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^~~~~~~~~~~~~~~~
../deps/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^~~~~~~~~~~~
../deps/v8/src/v8utils.h:125:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(sizeof(T) == kPointerSize);
   ^~~~~~~~~~~~~
In file included from ../deps/v8/src/elements.h:32:0,
                 from ../deps/v8/src/objects-inl.h:38,
                 from ../deps/v8/src/v8.h:60,
                 from ../deps/v8/src/accessors.cc:28:
../deps/v8/src/objects.h: At global scope:
../deps/v8/src/objects.h:5017:44: error: left operand of shift expression ‘(-1 << 3)’ is negative [-fpermissive]
   static const int kElementsKindMask = (-1 << kElementsKindShift) &
                                        ~~~~^~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/objects.h:7152:36: error: left operand of shift expression ‘(-8 << 26)’ is negative [-fpermissive]
       (~kMaxCachedArrayIndexLength << kArrayIndexHashLengthShift) |
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deps/v8/tools/gyp/v8_base.target.mk:209: recipe for target '/home/username/Tether/node/out/Release/obj.target/v8_base/deps/v8/src/accessors.o' failed
make[1]: *** [/home/username/Tether/node/out/Release/obj.target/v8_base/deps/v8/src/accessors.o] Error 1
make[1]: Leaving directory '/home/username/Tether/node/out'
Makefile:26: recipe for target 'node' failed
make: *** [node] Error 2

Считая сеть, было предложено установить следующее:

sudo apt-get install libssl-dev cmake g++ lib32ncurses5 nodejs-legacy

Но это не помогло. Я также видел, что это могло бы иметь некоторое отношение к проблеме версии Python, но я не мог найти инструкции по уровню пользователя относительно того, как иметь дело с этим.

Существует ли способ, которым я могу разрешить это и установить Привязь на моем ноутбуке Ubuntu? И решение что-то, что может быть объяснено в терминах, что кто-то, кто ничего не знает о configure или make может понять?

Обновление:

Благодаря ответу DropHammer99 ниже, кажется, что я смог успешно скомпилировать программу. Это то, как XXFLAGS=-fpermissive make команда заканчивается после нескольких минут:

  LINK(target) /home/username/Tether/node/out/Release/node: Finished
  touch /home/username/Tether/node/out/Release/obj.target/node_dtrace_header.stamp
  touch /home/username/Tether/node/out/Release/obj.target/node_dtrace_provider.stamp
  touch /home/username/Tether/node/out/Release/obj.target/node_dtrace_ustack.stamp
  touch /home/username/Tether/node/out/Release/obj.target/node_etw.stamp
make[1]: Leaving directory '/home/username/Tether/node/out'
ln -fs out/Release/node node

К сожалению, тем не менее, когда я сначала запустил программу, как проинструктировано в README файл, это отказало с этой ошибкой:

~/Tether$ sudo linux/run.sh
[sudo] password for username: 
~/Tether
Starting Tether...
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
linux/run.sh: line 39: 21096 Segmentation fault      (core dumped) $NODE/node tether.js

Разве эта программа просто не собирается работать или является там чем-то, что я могу сделать для разрешения этой ошибки отказа сегментации?

6
задан 13 April 2017 в 05:24

8 ответов

Похоже, что приложение Clockwordmod Tether linux устарело и нуждается в значительном обслуживании. Я скомпилировал узел с помощью приведенных выше ответов. Но это дало

linux/run.sh: line 39: 25901 Segmentation fault $NODE/node tether.js

ошибку. Когда я проверял версию своего узла, я увидел, что v0.8.14 . Эта версия очень старая, так как в ней нет документации. Когда я отредактировал файл run.sh и заставил его использовать установленный в моей системе nodejs (v4.8.2), он не смог получить сообщение: [TypeError: os.setupTun is not a function]

Как пользователи gnu / linux, нам нужно найти другую альтернативу решение это приложение!

3
ответ дан 23 November 2019 в 07:23

У меня есть фиксация на данный момент.

  • Входят в файл: spaces.cc в node/deps/v8/src
  • Переходят к функции: bool PagedSpace::AdvanceSweeper (приблизительно строка 2274)
  • Добавляют return true; в начале метода.

Сделайте:

make distclean
./configure --without-snapshot
CXXFLAGS=-fpermissive make

привязь Выполнения:

sudo linux/run.sh

Это соединяется и находится в администраторе сети!

2
ответ дан 23 November 2019 в 07:23

Когда Вы получаете segfault обычно несоответствие библиотек, вызывающих неожиданное поведение.

segfault вызовет дамп ядра, это - дамп в файл состояния выполнения программы непосредственно перед тем, как я отказал, можно использовать это для отладки, почему это отказало. Это - сложный материал.

базовым дампом по умолчанию часто выключается, для переключения его на Вас должно будет гарантировать, чтобы Ваши ulimit настройки позволили базовому файлу быть установленным, можно затем загрузить этот базовый файл в в отладчик и иметь его, показывают Вам, где он застрял.

для конфигурирования сессии, чтобы позволить ядрам, которые будут сгенерированы:

ulimit -c unlimited

затем запускает Вашу программу и позволяют его segfault и создают файл, названный ядром

для диагностирования его, можно использовать отладчик гну GDB (где программу называют programname, и corefile называют ядром)

sudo apt-get install gdb
gdb programname core

, программа затем увеличит до такой степени, когда его segfaults, и Вы получите подсказку, можно войти "купленный" для получения следа, который должен указать на Вас на источник проблемы. Эта информация будет полезна в отчете об ошибках, даже если Вы не поймете это.

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

Для большего количества информации - http://bl0rg.krunch.be/segfault-gdb-strace.html

1
ответ дан 23 November 2019 в 07:23

Другой прием для попытки короток, быстр и прост, но может победить проблему. Сделайте копию более нового установленного adb файла и вставьте его в каталог привязи/Linux с run.sh и позвольте ему перезаписать более старую копию adb, поскольку он, очевидно, не работает.

я честно думаю, что старый adb поврежден или возможно его просто сонный! lol

я не попробовал это обходное решение сам, но это, по крайней мере, стоит попытки.

0
ответ дан 23 November 2019 в 07:23

Операционная Ubuntu 16.04LTS

sudo apt-get install android-tools-adb
sudo ln -s /android/platform-tools/adb /bin/adb
sudo apt-get install npm 
npm install chainsaw 

.

Никакое редактирование файлов. К сожалению, не уверенный, если первые две команды связаны, поскольку это было чем-то, что я экспериментировал с предшествующей ночью.

0
ответ дан 23 November 2019 в 07:23

Та ошибка является компилятором C++, жалующимся на некоторых применимых, но меньше, чем идеальный код. С правильными параметрами командной строки можно сказать компилятору игнорировать проблемы кода как этот и продолжать идти. Это - не всегда лучшее решение, но это получит вещи скомпилировать и работать.

Во-первых, выполненный make clean избавиться от чего-нибудь позади от Вашей старой попытки сборки.

Затем выполненный CXXFLAGS=-fpermissive make чтобы попробовать еще раз с компилятором C++, понижая их, код выходит к предупреждениям.

Я смог воспроизвести Вашу ошибку на своих 64-разрядных 16,10 установках, и это обходное решение позволило сборке заканчивать ту ошибку для меня.

К сожалению, сборка, казалось, перестала работать далее наряду с этой проблемой:

make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/home/username/work/Tether/node/out'
  LD_LIBRARY_PATH=/home/username/work/Tether/node/out/Release/lib.host:/home/username/work/Tether/node/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/tools/gyp; mkdir -p /home/username/work/Tether/node/out/Release/obj.target/v8_snapshot/geni; "/home/username/work/Tether/node/out/Release/mksnapshot" --log-snapshot-positions --logfile "/home/username/work/Tether/node/out/Release/obj.target/v8_snapshot/geni/snapshot.log" "/home/username/work/Tether/node/out/Release/obj.target/v8_snapshot/geni/snapshot.cc"
Segmentation fault (core dumped)
deps/v8/tools/gyp/v8_snapshot.target.mk:13: recipe for target '/home/username/work/Tether/node/out/Release/obj.target/v8_snapshot/geni/snapshot.cc' failed
make[1]: *** [/home/username/work/Tether/node/out/Release/obj.target/v8_snapshot/geni/snapshot.cc] Error 139
make[1]: Leaving directory '/home/username/work/Tether/node/out'
Makefile:26: recipe for target 'node' failed
make: *** [node] Error 2

Я все еще изучаю ту проблему. Попробуйте начальное обходное решение, поскольку, возможно, Ваша система не поразит второй выпуск, который моя сделала.

Обновление: Я смог обойти тот второй выпуск, говоря инструменту конфигурации пропустить шаг снимка. К сожалению, я понятия не имею, что шаг снимка, как предполагается, делает и боится, что я мог бы просто откладывать отказ до позже. Если Вы хотите попробовать это второе обходное решение также, вот последовательность команды для попытки:

make distclean
./configure --without-snapshot
CXXFLAGS=-fpermissive make
6
ответ дан 23 November 2019 в 07:23

Ре from:Bob Dickens Jr/BobDCoder, 2017, я не уверен, где ответить на эту проблему, таким образом, я надеюсь, что это - правильное место.

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

./run.sh: строка 38:../linux/adb: Никакой такой файл или каталог Эта проблема связана с Привязью/Linux, Вы найдете run.sh и нет строки прямо ниже CD../nodethat должен быть отредактирован. Найдите../linux/adb и измените эту строку на adb начинать-сервер, если Вы сделали установку ADB или/your/path/to/adb adb начинать-сервер, если Вы просто копируете и вставляемый adb в/usr/bin/adb или некотором другом каталоге.

Это должно удалить это../linux/adb Ошибка

Я использую Ubuntu 16.04, и я загрузил rar файл, который Вы упомянули выше и выполнили

./configure && make

Мне удалось создать без ошибок, вот мой делать журнал для сборки, иметь Вас, пытался делать make clean и затем ./configure && make после установки тех новых пакетов?

Обновление:

@Questioner

Здесь был мой вывод после того, как я работал ~/Documents/Tether/linux/run.sh как корень.

~/Documents/Tether/linux
  Starting Tether...
 ./run.sh: line 38: ../linux/adb: No such file or directory
  Opening tun device.
  Opening tun device: /dev/net/tun
  Forking worker.
  Opening tun device.
  adb binary path: "/home/username/Documents/Tether/linux/adb"
  Checking phone status...
  tun worker initialized.
  { [Error: Command failed: /bin/sh: 1:/home/username/Documents/Tether/linux/adb: not found
  ] killed: false, code: 127, signal: null }
  Fatal error setting up TCP listener. (Exiting)
  A possible cause may be that a "node.exe" processes was left     dangling.
  Please kill any node processes you find running.
  This may also be cause by a firewall that disallows connections to   Tether.

  /home/username/Documents/Tether/node-tuntap/tuntap.js:558
  exitTether();
  ^
   ReferenceError: exitTether is not defined
   at Server.<anonymous> (/home/username/Documents/Tether/node-tuntap/tuntap.js:558:7)
   at Server.EventEmitter.emit (events.js:96:17)
   at Server._listen2.self._handle.onconnection (net.js:894:14)
   at process.startup.processNextTick.process._tickCallback (node.js:244:9)
   TCP Catcher worker has died. Exiting.
   { '0': 1, '1': null }

Я предполагаю причины, почему Привязь не работает, в этом случае был бы:

  1. nodejs-legacy не установлен (от run.sh строка 39:$NODE/node tether.js),
  2. Android SDK не установлен (от run.sh строка 38: ../linux/adb start-server).

Но я не получил ошибки отказа сегментации. Я понятия не имею о Nodejs, имею Вас попробованный если node работы правильно как автономная команда?

Походит на Ваш ..adb/server start-server был выполнен успешно. Похоже, что существует проблема с $NODE/node tether.js на строке 39. Здесь,tether.js файл является первым аргументом node команда. Я попытался бы выполниться node tether.js как автономная команда на терминале.

1
ответ дан 23 November 2019 в 07:23

Исправлять мои провальные опечатки умов

Ре from:Bob Dickens Jr/BobDCoder, 2017

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

./run.sh: строка 38:../linux/adb: Никакой такой файл или каталог Эта проблема, очевидно, связана с файлом в каталоге/папке Tether/Linux, названном run.sh, который должен быть отредактирован.

Существует строка прямо ниже CD../узел, который должен быть отредактирован, так Найдите (строка 38)../linux/adb и измените эту строку на adb начинать-сервер, если Вы сделали автоматическую установку ADB.

CD../узел

начинать-сервер adb

Автоматическая установка это должно было автоматически установить путь в вышеупомянутой установке!

Однако, если Вы вручную создали каталог и скопировали adb в/usr/bin/adb ИЛИ Если Вы скопировали adb в некоторый другой каталог затем, Вы, возможно, должны изменить строки на код ниже. CD/your/path/to/adb adb начинать-сервер.

Однако начиная со строки 37 CD чтений../узел и помещают Вас в каталог узла, неясно, вызовет ли второе изменение в каталоге (строка 38) CD/some/custom/directory adb начинать-сервер компилятор или run.sh к ошибке снова, поскольку это вынуло бы Вас из каталога узла, когда это работает.

Причиной этого для этого является CD.. в коде и потребностях, на которые укажут. CD.. имеет в течение многих десятилетий, раньше отступал из текущего каталога одним уровнем, Таким образом.....

  • (run.sh) находится в каталоге привязи/Linux для запуска с и куда он работает.
  • Но в самом коде run.sh, когда это работает, это говорит run.sh отступать из / подкаталога Linux к Привязи / с "CD.." часть (строка 37) команда!
  • С концом команды на строке 37 / узлов это также говорит этому переключаться на каталог узла.... Если такой имеет место, я брал на себя смелость перекодирования строки 37, 38 и новые строки для исправления этой проблемы.

CD../узел

CD/usr/bin/adb

начинать-сервер adb

CD/YourAbsolute/path/back/to/Tether/node

или Вы могли просто попытаться удалить CD кода 37 строки../узел и пробовать ниже

CD/usr/bin/adb

начинать-сервер adb

CD/YourAbsolute/path/back/to/Tether/node

Неясно мне, если Узел должен работать прежде, чем запустить adb сервер или если бы Узел может бежать за adb сервером, запустился (я думаю логически позже), работал бы.

С небольшим проигрыванием, которое должно удалить../linux/adb Ошибка

0
ответ дан 23 November 2019 в 07:23

Другие вопросы по тегам:

Похожие вопросы: