PocketMagic

PocketMagic

Где Технология встречает волшебство

PocketMagic RSS Подача
 

Андроид C родное развитие – берет полный контроль!

Radu Motisan Отправленный 12-ого мая 2009

Недавний проект я продолжал работать требуемый Bluetooth, программирующий на Андроиде.
Имея быстрый взгляд по последним 1.5 Андроидам SDK, я мог видеть, что поддержка bluetooth отсутствовала. Более позднее исследование указало, что Google выразительно исключил нехватку обвинения ПЧЕЛЫ Bluetooth времени.

С другой стороны, я не большой Явский поклонник, чтобы сказать наименее. Я нахожу Яву недружелюбной, и мне не нравятся взгляд и чувство Явских приложений. Жаль, я предпочитаю C/C ++, так как он обеспечивает лучший контроль и гибкость. Таким образом пришло время начинать делать C/C ++ родные заявления для Андроида Google. Sorry, I prefer C/C++ since it provides better control and flexibility. So it's time to start doing C/C++ native applications for the Google Android.

Как управляемый программа C на Андроиде Google?
Первая вещь, которую я покажу здесь, должен собрать простую программу C для Андроида.


#include <stdio.h>
int main()
{
printf("Hello Google Android world!\nwww.pocketmagic.net\n");
return 1;
}

Сохраните эту программу как test.c. В следующих шагах мы будем собирать этот образец для Андроида Google, используя gcc.

Инструменты

1. Загрузите ubuntu linux. Я в настоящее время использую Настольный выпуск 9.04 в действительной машине. I currently use Desktop edition 9.04 in a virtual machine.
Внимание: Вы должны будете установить Ubuntu на машине по крайней мере с 1.5 Домкратами Великобритании, 10 Великобритании ext2 разделение и 2 разделения Обмена Великобритании, или Вы не будете в состоянии использовать информацию этой обучающей программы (менее тогда, минимальные требования приведут к невозможности компилирования Кодекса Андроида, и мы нуждаемся в этом для библиотек).

2. Как только Ubuntu установлен, загрузить Исходный текст Андроида. На Вашем linux коробка устанавливают дополнительные пакеты: On your linux box install additional packages:
$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
$ sudo apt-get install valgrind

Этот только для Бесстрашных пользователей Ubuntu:

$ sudo apt-get install lib32readline5-dev

3. Установите Repo
Создайте ~ / справочник мусорного ведра в Вашем домашнем каталоге, и проверка, чтобы убедиться, что этот справочник мусорного ведра находится в Вашем пути:

$ cd ~
$ mkdir bin
$ echo $PATH

Чтобы добавить это к Пути, Вы можете использовать:

$ PATH=$PATH:~/bin/

Загрузите repo подлинник и удостоверьтесь, что это выполнимо:

$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo

4. Калибрование клиента Repo
Создайте пустой справочник, чтобы держать Ваши рабочие файлы:

$ mkdir mydroid
$ cd mydroid

repo, которым управляют, init, чтобы снизить последнюю версию Repo со всеми ее новыми затруднительными положениями ошибки. Вы должны определить URL для декларации:

$ repo init -u git://android.git.kernel.org/platform/manifest.git
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

Когда вызвано, формируйте Repo со своим реальным названием и адресом электронной почты. Если Вы планируете представить кодекс, используйте адрес электронной почты, который связан со счетом Google.
Успешная инициализация закончит сообщением такой как

repo initialized in /mydroid

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

5. Получение файлов
Сбрасывать файлы к Вашему рабочему справочнику от складов как определено в декларации по умолчанию, которой управляют

$ repo sync

Для больше о синхронизации repo и других командах Репо, см. Используя Репо и Мерзавца.
Исходные файлы Андроида будут расположены в Вашем рабочем справочнике под их названиями проекта.

6. Подтверждение Признаков Мерзавца
Загрузите следующий открытый ключ в свою ключевую базу данных GnuPG. Ключ используется, чтобы подписать аннотируемые признаки, которые представляют выпуски.

$ gpg --import

тогда приклейте ключ (и) ниже, и Контроль-D за прессой, чтобы закончить вход и обработать ключи.

key 9AB10E78: "The Android Open Source Project <initial-contribution@android.com>"
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5OY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5 +
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM =
=Wi5D
-----ЗАКОНЧИТЕ БЛОК ОТКРЫТОГО КЛЮЧА PGP------END PGP PUBLIC KEY BLOCK-----

После импортирования ключей Вы можете проверить любой признак с

$ git tag -v tagname

7. Построение кодекса
Кодекс Андроида содержит ошибку, которая не была решена до даты этой статьи.
Так, прежде, чем Вы начнете собирать кодекс, Вы будете нуждаться в нескольких модификациях, или строить потерпит неудачу (после потребления части Вашего времени и терпения). Ошибка:

external/qemu/sockets.c: In function 'sock_address_init_resolve':
external/qemu/sockets.c:637: error: 'EAI_NODATA' undeclared (first use
in this function)
external/qemu/sockets.c:637: error: (Each undeclared identifier is
reported only once
external/qemu/sockets.c:637: error: for each function it appears in.)
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/
sockets.o] Error 1

Установить это, прежде, чем собрать кодекс андроида, открытый ~/mydroid/external/qemu/sockets.c и добавлять

#define __USE_GNU

как раз перед #include <netdb.h>

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

$ cd ~/mydroid
$ make

На моей действительной машине, бегущей ubuntu, процесс сборки занял несколько часов. PC хозяина 2.6GHz P4.

Соберите test.c с gcc для платформы Андроида
Андроид использует упрощенную версию libc, названного бионическим. Мы должны собрать предварительно построенный кросскомпилятор Андроида использования arm-eabi-gcc, и использовать бионическую библиотеку по телефону.
Легкий способ сделать это должно использовать agcc perl обертка. Вы можете загрузить оригинальный файл здесь, и изменить

my $TOOLCHAIN = "$DROID/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1";

к

my $TOOLCHAIN = "$DROID/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1";

Или загрузите эту обновленную версию непосредственно.

Скопируйте agcc к своему домашнему каталогу, и chmod это:

chmod +x agcc

тогда установите ПУТЬ к бионическому, освобождает и agcc местоположение:

$ PATH=$PATH:~/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin:~/:~/mydroid/

Теперь Вы можете собрать test.c файл:

agcc test.c -o test

Возьмите получающийся испытательный набор из двух предметов и загрузите его к своему использованию андроида:

adb push test /data/local/test

Тогда пробег это:

adb shell
chmod 775 test
./test

См. рис. для большего количества деталей:

Следующая вещь, которая сделает, должна попытаться управлять bluetooth функциональными возможностями, используя кодекс уроженца К и андроид toolchain.

Больше на приложениях уроженца К для Андроида здесь.

Часть этой статьи содержит информацию, представленную Google на http://source.android.com/download

Наилучшие пожелания,
Radu Motisan

Radu Motisan

43 Ответа на “Андроид C родное развитие – берут полный контроль!

  1. 1
    Андерс:

    Большой. Спасибо за инструкции.
    Какая-нибудь идея, как запускают Вашу программу C, когда система загружает, или после того, как это загружает?

  2. 2
    Ash09:

    Привет
    когда я управляю следованием моего Ubuntu 9.04:
    $ склонные sudo - добираются, устанавливают lib32readline5-dev
    Я получаю следующую ошибку:
    E: Не мог найти пакет lib32readline5-dev
    как сделал решение u это?

  3. 3
    Radu Motisan:

    Это только для ubuntu бесстрашных пользователей.

    Вы не будете нуждаться в этом в 9.04 рабочих столах.

    Я изменил почту, чтобы отразить это также.

  4. 4
    Дорический:

    Привет,

    Спасибо за инструкции.
    Только небольшая модификация, Вы должны изменить agcc, поскольку toolchain не правильный libgcc.a, не находится больше в, взаимодействуют папка, таким образом 2 линии должны быть изменены также.

    "$TOOLCHAIN/lib/gcc/arm-eabi/4,3,1/libgcc.a", на линии 117 и 132
    Спасибо

  5. 5
    Штефан:

    Большой. работы как очарование.
    @Dorian: спасибо за исправление.

  6. 6
    Anupam:

    Привет,
    У меня есть окружающая среда для построения кодекса C для андроида 1.0 в ubuntu машине. Теперь я загрузил Андроид 1.5 SDK для linux и хочу собрать тот же самый кодекс C для Андроида 1.5. Что изменяется, я должен сделать? What changes I have to make ?

  7. 7
    marius:

    Привет,
    Я использую андроид X86 (взятый 10 октября ‘09).
    Я добираюсь: adb: не найденный not found

    Тогда. Я установил законченный system.img, скопированный явный *hello в
    /system/bin и данные/, тогда я имею, строят международную организацию по стандартизации и загружают это.tem/bin and data/, then I’ve build the iso and boot it up.
    Я могу видеть мой привет, но.

    #. / привет
    привет: не найденный

    #hello
    привет: не найденный

    #adb
    adb, не найденный

    Раковина является немой или.

  8. 8
    Radu Motisan:

    привет marius,
    что производит, делают Вы добираетесь от ls-l
    ?
    также, что делает Вы подразумеваете, "тогда я имею, строят международную организацию по стандартизации и загружают это.

  9. 9
    Построить окружающую среду для того, чтобы развить Андроид для freerunner | allenc.tw:

    [...] 相關資料: Link1、Link2、Link3 [...]

  10. 10
    Perumal:

    Я сделал точно то же самое как упомянуто здесь, но продолжаю получать следующую ошибку:

    “/mydroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: В функции '_start':
    bionic/libc/arch-arm/bionic/crtbegin_dynamic. S: (. text+0×14): неопределенная ссылка на 'главный'(.text+0×14): undefined reference to `main’
    collect2: ld возвратил 1 выходной статус”

    Какая-нибудь идея, как решить это?

    Заранее большое спасибо.

  11. 11
    Radu Motisan:

    Удостоверьтесь, что Вы поместили следующие папки в путь:

    $DROID/prebuilt/linux-x86/toolchain/arm-eabi-4,2,1

    $DROID/prebuilt/linux-x86/toolchain/arm-eabi-4,3,1

  12. 12
    Perumal:

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

  13. 13
    Tayefeh:

    Эй, это действительно велико! Только проверенный это и это работали … теперь, я могу держать весь свой древний C в строевой стойке programms к андроиду lol

  14. 14
    Radu Motisan:

    Эй там Tayefeh, забавный, чтобы видеть это не так ли?
    Правда - Вы, может сделать воспаленные очень сильные приложения, используя JNI.
    Я осуществил полный bluetooth l2cap интерфейс для Явы, используя это. Отправит более скоро.

  15. 15
    mbt:

    Мне нравится идея, прохладная!

  16. 16
    луг:

    Очень хорошее объяснение! Вы экономили мое время. Все в одном решении для места! Спасибо! All in one place solution! Thanks!

  17. 17
    Radu Motisan:

    Я рад, что Вам нравится это. Удостоверьтесь, что Вы читаете о JNI также: это обеспечивает еще некоторые варианты. it provides some more options.

  18. 18
    луг:

    Еще одна вещь – я пытаюсь управлять образцом ‘привет мировая’ программа, используя.cpp файл вместо.c файла. Компилятор жалуется на не обнаружение iostream.h. Вы могли сказать мне, как использовать Ваш подлинник, чтобы назвать c ++ файлом? Could you tell me how to use your script to call a c++ file?

  19. 19
    a:

    Спасибо за то, чтобы занимать время, чтобы предоставить эту информацию;-) Это является самым полезным

  20. 20
    Radu Motisan:

    Пожалуйста, a.

  21. 21
    Kaushik:

    Вы можете написать, что тот же самый agcc подлинник для миллиона команд в секунду базировал систему?

  22. 22
    Radu Motisan:

    Я могу спросить, какие аппаратные средства андроида МИЛЛИОНА КОМАНД В СЕКУНДУ Вы имеете?

  23. 23
    Kaushik:

    У меня есть МИЛЛИОН КОМАНД В СЕКУНДУ Мальтийское правление с MIPSr2

  24. 24
    Kaushik:

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

    -Kaushik

  25. 25
    сэбин:

    Может, t установить дополнительные пакеты андроида в ubuntu 10.4

  26. 26
    Tanis:

    Привет Radu! Хороший гид, но у меня есть проблема с agcc компилятором:

    ~$ agcc helloword.c-o helloword
    arm-eabi-gcc:/home/tanisdlj/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/lib/gcc/arm-eabi/4.2.1/interwork/libgcc.a: Никакой такой файл или папка No such file or directory

    Это - мой ПУТЬ:

    tanisdlj@tanisdlj-andev $:~ повторяет $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/tanisdlj/bin/:/home/tanisdlj/mydroid/prebuilt/li nux-x86/toolchain/arm-eabi-4.3.1/bin:/home/tanisdlj/:/home/tanisdlj/mydroid//local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/tanisdlj/bin/:/home/tanisdlj/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin:/home/tanisdlj/:/home/tanisdlj/mydroid/

    Я следую за Вашим гидом шаг за шагом, но у меня есть эта проблема. Какое-нибудь предложение?>. < >.<

  27. 27
    Suhas:

    Привет Radu

    Я следовал за всеми шагами и в заключительном шаге
    agcc hello.c-o привет я получаю эту ошибку

    /localhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld:/localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Переселения в родовом ЭЛЬФЕ (ИХ: 8)alhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld: /localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Relocations in generic ELF (EM:
    /localhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld:/localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Переселения в родовом ЭЛЬФЕ (ИХ: 8)alhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld: /localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Relocations in generic ELF (EM:
    /localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: не мог прочитать символы: Файл в неправильном форматеalhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: could not read symbols: File in wrong format
    collect2: ld возвратил 1 выходной статус

    Я установил ПУТЬ слишком правильно. Любезно пожалуйста помогите мне.

  28. 28
    Suhas:

    /localhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld:/localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Переселения в родовом ЭЛЬФЕ (ИХ: 8)alhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld: /localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Relocations in generic ELF (EM: 8 )
    /localhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld:/localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Переселения в родовом ЭЛЬФЕ (ИХ: 8)alhome/user/bin/mipsandroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/../lib/gcc/arm-eabi/4.3.1/../../../../arm-eabi/bin/ld: /localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: Relocations in generic ELF (EM: 8 )
    /localhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: не мог прочитать символы: Файл в неправильном форматеalhome/user/bin/mipsandroid/out/target/product/generic/obj/lib/crtbegin_dynamic.o: could not read symbols: File in wrong format
    collect2: ld возвратил 1 выходной статус

  29. 29
    mavci:

    сэбин
    Я устанавливал в ubuntu 10.04, и теперь я могу собрать c файлы для пончика андроида 1.6
    если Вы хотите, я могу объяснить

  30. 30
    mavci:

    Я собирал test.c для и бежал на раковине adb, но как бежать по моему телефону андроида? (DSTL1)

  31. 31
    Radu Motisan:

    привет, пожалуйста сделайте, я думаю, что это поможет сообществу.

  32. 32
    Radu Motisan:

    mavci, Вы можете использовать предельное заявление для андроида.

  33. 33
    mavci:

    спасибо Radu!
    Завтра я напишу весь explainations.

  34. 34
    Radu Motisan:

    Хорошо, тогда я могу добавить их к этой почте, таким образом другие могут использовать ее также.

  35. 35
    Куинси:

    это - так наркотик. Я могу собрать все виды программ пульта теперь!

    Пижон, Вы качаетесь!

  36. 36
    Куинси:

    @Tanis: Вы запутавшийся Ваши версии EABI в Вашем ПУТИ; есть ссылки на 4.2.1 и 4.3.1 there are references to 4.2.1 and 4.3.1

  37. 37
    Radu Motisan:

    рад Вам нравится это, Куинси.

  38. 38
    Крис:

    Может казаться, не заставляет gpg - секция импорта работать. Как точно Вы приклеиваете ключ в?

  39. 39
    qds:

    Эта обучающая программа прохладна, но у меня есть проблемы, когда я пытаюсь собрать статический

    когда я добавляю - статическая директива, я получаю ошибку: “не может найти-lc” “collect2: ld возвратил 1 выходной статус” ld returned 1 exit status”

    Вы знаете, как решить эту проблему? Спасибо

    отношения

  40. 40
    Anup:

    Gcc 4.3 требуется для построения андроида. 4.4 имеет строгий, имеет более строгие правила, таким образом это будет через fprintf declaraion ошибки...

    Установить,

    $ склонные sudo - добираются, устанавливают gcc-4.3 г ++-4.3
    $ комната sudo/usr/bin gcc
    $ комната sudo/usr/bin г ++
    $ sudo ln-s gcc-4.3 gcc
    $ sudo ln-s г ++-4.3 г ++

  41. 41
    Radu Motisan:

    Привет Anup, спасибо за Ваш вклад!

  42. 42
    Телефон андроида:

    Я нисколько не технический человек, таким образом когда дело доходит до понимания кодекса, это чувствует себя чуждым мне. Однако, от того, что я прочитал, Вы нашли способ включать функциональные возможности bluetooth с C ++? Это фактически отчасти спокойно по моему мнению. Если у Вас нет bluetooth, Вы делаете его непосредственно. That’s actually kind of cool in my opinion. If you don’t have bluetooth, you make it yourself.

  43. 43
    обман андроида эксплуатирует для корня:

    [...] Андроид C родное развитие – берет полный контроль! [...]

Оставьте Ответ

Пожалуйста скопируйте последовательность DYLRnK к области ниже:

Варианты блога

Переводчик

English flagFrench flagGerman flagItalian flagPortuguese flagRussian flagSpanish flag
By N2H

Категории

Архивы

Признаки

Спонсируемые Связи

Подпишитесь!

Получите больше последователей

Наши Спонсоры