Другим способом настройки nvcc для использования конкретной версии gcc (например, gcc-4.4) является редактирование nvcc.profile и изменение PATH для включения путь к gcc, который вы хотите использовать первым.
Например (gcc-4.4.6 установлен в / opt):
PATH += /opt/gcc-4.4.6/lib/gcc/x86_64-unknown-linux-gnu/4.4.6:/opt/gcc-4.4.6/bin:$(TOP)/open64/bin:$(TOP)/share/cuda/nvvm:$(_HERE_):
Местоположение nvcc.profile меняется, но он должен находиться в том же каталоге, что и исполняемый файл nvcc .
Это немного взломать, поскольку nvcc.profile не предназначен для настройки пользователя в соответствии с руководством по nvcc, но это решение было наилучшим для меня.
Всегда запускайте тот же AVD на тех же портах, не позволяйте эмулятору решать. Используйте
$ emulator -ports X,Y @avd_X
, тогда серийный номер будет эмулятором-X, и ваш avd_X всегда будет на портах X, Y, поэтому вы можете запускать свои команды с этим серийным номером, например,
$ adb -s emulator-X shell cmd
Чтобы убить запуск эмулятора
$ adb -s emulator-X emu kill
В строке заголовка окна эмулятора отображается одна и та же строка (например, emulator-5554
).
Есть два способа, которыми я знаю, чтобы выполнить обратный серийный номер к поиску имени AVD
Как указано в этом SO answer ... вы можете отменить поиск имени AVD для каждого серийного номера с помощью Telnet. Это немного слабо, потому что все, что вы делаете, это найти экземпляр эмулятора, запущенного с учетом определенного имени AVD. Он не однозначно идентифицирует эмулятор, над которым вы хотите работать. Он также страдает необходимостью использовать telnet и разбор номера порта для каждого эмулятора.
Сначала получите текущие серийные номера
adb devices
, затем telnet для номера порта каждого устройства
telnet localhost 5554
и выдать команду
avd name
, которая вернет AVD-имя этого эмулятора.
Первоначально я видел это в проекте под названием DCMTK . Создайте UUID uuidgen
и установите свойство на эмуляторе при запуске! В моем примере запускается эмулятор для выполнения некоторых проверок времени компиляции для библиотек, которые требуют запуска кода на целевом сервере для определения информации о типе.
emulator -avd nexus19-arm -no-window -no-boot-anim -noaudio -prop emu.uuid=7a6f8701-43c2-4e16-988a-8b4992c0bf8d >/dev/null </dev/null 2>&1 &
Затем, когда вы хотите найти этот конкретный экземпляр эмулятора, через все запущенные эмуляторы и искать этот UUID.
adb -s emulator-5556 shell getprop emu.uuid
в цикле:
for SERIAL_NUMBER in `adb devices| grep emulator| cut -f1`; do
UUID=`adb -s ${SERIAL_NUMBER} shell getprop emu.uuid | tr -d '\r\n'`
echo ${SERIAL_NUMBER} ${UUID}
done
adb -s ${SERIAL_NUMBER} wait-for-device
, чтобы вы узнайте, когда вы можете поговорить с эмулятором sys.boot_completed
adb -s ${SERIAL_NUMBER} emu kill
-port
, а не-ports
позволяет указать только номер порта single i>; например$ emulator -port 5556 @avd_X
; обратите внимание, что номер порта должен быть четным числом между 5554 и 5584 в этом случае (любопытно, что использование-ports
не налагает ограничение этого диапазона). – mklement0 7 September 2013 в 20:01