Я пытаюсь установить Привязь 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
Разве эта программа просто не собирается работать или является там чем-то, что я могу сделать для разрешения этой ошибки отказа сегментации?
Похоже, что приложение 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, нам нужно найти другую альтернативу решение это приложение!
У меня есть фиксация на данный момент.
spaces.cc
в node/deps/v8/src
bool PagedSpace::AdvanceSweeper
(приблизительно строка 2274) return true;
в начале метода. Сделайте:
make distclean
./configure --without-snapshot
CXXFLAGS=-fpermissive make
привязь Выполнения:
sudo linux/run.sh
Это соединяется и находится в администраторе сети!
Когда Вы получаете 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
Другой прием для попытки короток, быстр и прост, но может победить проблему. Сделайте копию более нового установленного adb файла и вставьте его в каталог привязи/Linux с run.sh и позвольте ему перезаписать более старую копию adb, поскольку он, очевидно, не работает.
я честно думаю, что старый adb поврежден или возможно его просто сонный! lol
я не попробовал это обходное решение сам, но это, по крайней мере, стоит попытки.
Операционная 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
.
Никакое редактирование файлов. К сожалению, не уверенный, если первые две команды связаны, поскольку это было чем-то, что я экспериментировал с предшествующей ночью.
Та ошибка является компилятором 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
Ре 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 }
Я предполагаю причины, почему Привязь не работает, в этом случае был бы:
nodejs-legacy
не установлен (от run.sh
строка 39:$NODE/node tether.js
),run.sh
строка 38: ../linux/adb start-server
).Но я не получил ошибки отказа сегментации. Я понятия не имею о Nodejs, имею Вас попробованный если node
работы правильно как автономная команда?
Походит на Ваш ..adb/server start-server
был выполнен успешно. Похоже, что существует проблема с $NODE/node tether.js
на строке 39. Здесь,tether.js
файл является первым аргументом node
команда. Я попытался бы выполниться node tether.js
как автономная команда на терминале.
Исправлять мои провальные опечатки умов
Ре 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.. имеет в течение многих десятилетий, раньше отступал из текущего каталога одним уровнем, Таким образом.....
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 Ошибка