Paano sasabihin sa Android NDK na gumamit ng ibang toolchain

Phonon 09/02/2017. 3 answers, 18.326 views
android android android-ndk android-ndk toolchain

Na-download ko ang custom na toolchain ( linaro ) upang bumuo ng ARM batay Android apps. Paano ko sasabihin sa NDK na gamitin ito? Maaari ko bang tukuyin o itakda ang isang bagay sa Android.mk at Application.mk na magpapahintulot sa akin na gawin iyon? Mayroon bang ibang paraan?

1 Comments
corbin 03/08/2012
Ginawa mo ba ito sa Ubuntu? Paano mo i-install ang toolchain?

3 Answers


Peter M 03/01/2013.

Tulad ng binanggit ng iba pang sagot, ang mga toolkit ay natuklasan sa pamamagitan ng ndk-build makefile system sa $(NDK_ROOT)/toolchains/ at maaari kang mag-mirror ng mga ideya na nakikita mo doon. Subalit may ilang dagdag na konsepto para sa pagsuporta sa mga target na platform ng hindi pang-Android na kagiliw-giliw na bagaman maaari silang madaling lipas na sa panahon habang ang ndk-build ay nagsisimula nang tahasang sumusuporta sa iba pang mga platform, tulad ng mingw targeting win32 (o iba pang mga gcc compiler na naka-target sa plain ol linux) .

Sa config.mk :

TOOLCHAIN_ABIS := (list of ABIs that the toolchain supports) 

Ito ay isang mahalagang kahulugan, dahil maaari mong gamitin ang pangalang ito sa iyong Application.mk upang bumuo gamit ang toolchain para sa isang partikular na ABI. Isa sa mga benepisyo ng pag-corrupt sa paggamit ng kahulugan na ito, ay ang pagtatayo ng ndk-build ay maaaring sabay-sabay na bumuo para sa maraming ABIs. always ipinapalagay na ang platform ay Android, ngunit kung gusto mong i-target ang win32 gamit ang isang tool na batay sa mingw, maaari mong tukuyin ang isang "ABI" bilang x86-win32 , at pagkatapos ay gamitin ang ABI sa iyong Application.mk upang piliin ito bilang karagdagang target sa pamamagitan ng APP_ABI:= x86-win32 Pagkatapos sa iyong Android.mk file maaari mong gamitin ang TARGET_ARCH_ABI kahulugan upang piliin ang mga partikular na mapagkukunan ng win32 at isama ang mga landas, halimbawa:

ifeq ($(TARGET_ARCH_ABI),x86-win32)
  LOCAL_SRC_FILES += my_win32_file.c
  LOCAL_CFLAGS += -DSOME_WIN32_SPECIFIC
endif 

Ang pangwakas na piraso ay na sa setup.mk para sa iyong toolchain, maaaring hindi sapat ang pagtingin sa iba pang mga toolchain bilang mga halimbawa, dahil kung ano ang setup.mk para sa isang partikular na toolchain really ginagawa ay pawalang-bisa ang mga setting sa default-build-commands.mk , kaya kung ano ang gusto mong gawin ay siyasatin ang file na iyon, at muling tukuyin ang mga bagay na hindi mo gusto.

Kasunod ng nakaraang halimbawa, ang mingw ay hindi sumusuporta sa noexec na bandila sa mga binary, at maaari mong mapupuksa ang tampok na ito sa pamamagitan ng pagdaragdag ng mga sumusunod na linya sa iyong setup.mk :

# These flags are used to enforce the NX (no execute) security feature in the
# generated machine code. This adds a special section to the generated shared
# libraries that instruct the Linux kernel to disable code execution from
# the stack and the heap.
TARGET_NO_EXECUTE_CFLAGS  := # our platform doesn't support this flag!
TARGET_NO_EXECUTE_LDFLAGS := # our platform doesn't support this flag!

# These flags disable the above security feature
TARGET_DISABLE_NO_EXECUTE_CFLAGS  :=  # our platform doesn't support this flag!
TARGET_DISABLE_NO_EXECUTE_LDFLAGS :=  # our platform doesn't support this flag! 

Ito ay isa lamang halimbawa ng maraming mga tampok sa default-build-commands.mk na maaaring kailangang ma-overridden, at siyempre mahalaga na magbigay TOOLCHAIN_NAME upang TOOLCHAIN_NAME ang toolchain sa pamamagitan ng variable na NDK_TOOLCHAIN loob ng iyong Application.mk file bilang karagdagan sa pamamaraan ng ABI na binanggit ko sa itaas.


Ian Ni-Lewis 09/12/2013.

Ang sistema ng makefile ng NDK ay medyo extensible at maaari mo talagang tukuyin ang ibang toolchain. Kakailanganin mo ng ilang pang-unawa kung paano Gumawa ng mga gawa.

Ang mga toolkit ay natuklasan at nasimulan sa build/core/init.mk linya 261 (sa NDKr6, ang linya # ay maaaring magbago sa mga bersyon sa hinaharap). Hinahanap ng code ng pagsisimula ang mga file na pinangalanang config.mk ilalim ng $(NDK_ROOT)/toolchains/* . Kaya kakailanganin mong idagdag ang iyong toolchain sa isang subdirectory sa direktoryo ng toolkit ng NDK, at magdagdag ng config.mk at setup.mk sa subdirektang iyon. Tumingin sa toolchains/x86-4.4.3 at toolchains/arm-linux-androideabi-4.4.3 para sa mga halimbawa. Dapat mong i-cut at i-paste ang ARM toolchain config.mk at setup.mk kung ang iyong toolchain ay may standard na layout.

Sa sandaling natukoy mo na ang isang toolchain sa direktoryo ng toolchain, maaari mong ilipat ito sa pamamagitan ng pagtatakda ng variable na NDK_TOOLCHAIN loob ng iyong Application.mk file.


lily 07/31/2017.

mabuti, maaari mo lamang idagdag ang "NDK_TOOLCHAIN_VERSION = 4.9" sa iyong Application.mk


HighResolutionMusic.com - Download Hi-Res Songs

1 The Chainsmokers

Beach House flac

The Chainsmokers. 2018. Writer: Andrew Taggart.
2 (G)I-DLE

POP/STARS flac

(G)I-DLE. 2018. Writer: Riot Music Team;Harloe.
3 Ariana Grande

​Thank U, Next flac

Ariana Grande. 2018. Writer: Crazy Mike;Scootie;Victoria Monét;Tayla Parx;TBHits;Ariana Grande.
4 Anne-Marie

Rewrite The Stars flac

Anne-Marie. 2018. Writer: Benj Pasek;Justin Paul.
5 Clean Bandit

Baby flac

Clean Bandit. 2018. Writer: Jack Patterson;Kamille;Jason Evigan;Matthew Knott;Marina;Luis Fonsi.
6 Nicki Minaj

No Candle No Light flac

Nicki Minaj. 2018. Writer: Denisia “Blu June” Andrews;Kathryn Ostenberg;Brittany "Chi" Coney;Brian Lee;TJ Routon;Tushar Apte;ZAYN;Nicki Minaj.
7 BlackPink

Kiss And Make Up flac

BlackPink. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
8 Imagine Dragons

Bad Liar flac

Imagine Dragons. 2018. Writer: Jorgen Odegard;Daniel Platzman;Ben McKee;Wayne Sermon;Aja Volkman;Dan Reynolds.
9 BTS

Waste It On Me flac

BTS. 2018. Writer: Steve Aoki;Jeff Halavacs;Ryan Ogren;Michael Gazzo;Nate Cyphert;Sean Foreman;RM.
10 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
11 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
12 Brooks

Limbo flac

Brooks. 2018.
13 Fitz And The Tantrums

HandClap flac

Fitz And The Tantrums. 2017. Writer: Fitz And The Tantrums;Eric Frederic;Sam Hollander.
14 Backstreet Boys

Chances flac

Backstreet Boys. 2018.
15 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
16 Diplo

Close To Me flac

Diplo. 2018. Writer: Ellie Goulding;Savan Kotecha;Peter Svensson;Ilya;Swae Lee;Diplo.
17 Rita Ora

Velvet Rope flac

Rita Ora. 2018.
18 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
19 Imagine Dragons

Machine flac

Imagine Dragons. 2018. Writer: Wayne Sermon;Daniel Platzman;Dan Reynolds;Ben McKee;Alex Da Kid.
20 Erika Sirola

Speechless flac

Erika Sirola. 2018. Writer: Teemu Brunila;Stefan Dabruck;Jürgen Dohr;Guido Kramer;Dennis Bierbrodt;Chris Braide;Robin Schulz.

Related questions

Hot questions

Language

Popular Tags