| 
		
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
	
		Pozdrav svima, 
kao sto komplikovani naslov govori radi se o komplikovanoj materiji i nadam se da ce neki iskusan programer da se ukljuci u problematiku.
 
Sve bi to bilo super i sto je najgore radi na Linuxu, ali meni treba za MacOS i tu nastaje problem sto nema oficialnih toolset-ova za tu platformu i svi kazu da se koristi Clang (koji je sam po sebi crooscompiler) sto donekle nije strasno i mozda proradi sa njim ali ne mogu da ga nateram da povuce sve sto treba jer MORA da se bilduje i linkuje na osnovu postojecih biblioteka i kernela od RPi (skine se sa RPi u lokal na case-sensitive FS) ali stalno nesto kuka da mu fali.
 
Intereseuje me samo ovo cudo da proradi, dakle najprostiji HelloWorld.cpp ali da se bilduje na macOS (x86) a da radi na RPi ARM Linux, nista vise ne trazim, samo to    PHP Code: #include <iostream>
 int main() {
 std::cout << "Hello world" << std::endl;
 return 0;
 }
 
 
	
	
	
		
	Posts: 718 
	Threads: 42 
	Joined: Jul 2015
	
 Reputation: 
442 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
		
		
		10-07-2018, 06:23 PM 
(This post was last modified: 10-07-2018, 06:23 PM by mikikg.)
		
	 
		Nemam pojma vise nista .... pogubio sam se skroz a kako i nebi ... : ( 
ovo je komanda za prevodjenje i to kao radi
 Code: "/Volumes/xtool-build-env/raspbian-sdk/prebuilt/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang-7" -cc1 -triple armv6kz--linux-gnueabihf -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name hello.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu arm1176jzf-s -target-feature +strict-align -target-abi aapcs-linux -mfloat-abi hard -fallow-half-arguments-and-returns -dwarf-column-info -debugger-tuning=gdb -target-linker-version 409.12 -v -resource-dir /Volumes/xtool-build-env/raspbian-sdk/prebuilt/clang+llvm-7.0.0-x86_64-apple-darwin/lib/clang/7.0.0 -isysroot /Volumes/xtool-build-env/raspbian-sdk/sysroot -I /Volumes/xtool-build-env/sysroot/usr/include -I /Volumes/xtool-build-env/sysroot/usr/include/arm-linux-gnueabihf/ -internal-isystem /usr/local/include -internal-isystem /Volumes/xtool-build-env/raspbian-sdk/prebuilt/clang+llvm-7.0.0-x86_64-apple-darwin/lib/clang/7.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /Volumes/xtool-build-env -ferror-limit 19 -fmessage-length 214 -fno-signed-char -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/5q/httk5zk11yl6hfhrf5rdhbrh0000gn/T/hello-36b108.o -x c++ hello.cpp -faddrsig
a ovo za linkovanje koja ne radi i tu je haos ...
 Code: "/Volumes/xtool-build-env/host/bin/arm-linux-gnueabihf-ld" --sysroot=/Volumes/xtool-build-env/sysroot -X --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /lib/ld-linux-armhf.so.3 -o a.out /Volumes/xtool-build-env/sysroot/usr/lib/arm-linux-gnueabihf/crt1.o /Volumes/xtool-build-env/sysroot/usr/lib/arm-linux-gnueabihf/crti.o /Volumes/xtool-build-env/sysroot/usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o -L/Volumes/xtool-build-env/sysroot/usr/lib/gcc/arm-linux-gnueabihf/6 -L/Volumes/xtool-build-env/sysroot/usr/lib/gcc/arm-linux-gnueabihf/6.3.0 -L/Volumes/xtool-build-env/sysroot/usr/lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../lib -L/Volumes/xtool-build-env/sysroot/lib/../lib -L/Volumes/xtool-build-env/sysroot/usr/lib/../lib -L/Volumes/xtool-build-env/sysroot/usr/lib/arm-linux-gnueabihf/../../lib -L/Volumes/xtool-build-env/sysroot/usr/lib/gcc/arm-linux-gnueabihf/6.3.0/../../.. -L/Volumes/xtool-build-env/sysroot/lib -L/Volumes/xtool-build-env/sysroot/usr/lib /var/folders/5q/httk5zk11yl6hfhrf5rdhbrh0000gn/T/hello-36b108.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /Volumes/xtool-build-env/sysroot/usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o crtn.o -L/Volumes/xtool-build-env/sysroot/usr/lib/arm-linux-gnueabihf/ /Volumes/xtool-build-env/sysroot/usr/lib/arm-linux-gnueabihf/crt1.o
ma bezi ovo je bolesno ....
	 
	
	
	
		
	Posts: 775 
	Threads: 12 
	Joined: Mar 2013
	
 Reputation: 
360 
	
	
		Jel moze da se pokrene program kompajliran sa Cygwinom na Windowsu, na MacOS?
	 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
		
		
		10-07-2018, 06:35 PM 
(This post was last modified: 10-07-2018, 06:40 PM by mikikg.)
		
	 
		Pa moze ali to je isti problem kao i kod mene, da bi to preveo i linkovao moras da imas kod sebe kopiju celeog Mac-ovog /usr/lib i /usr/local/lib pa onda includove jer on mora da prevede/linkuje "od kulina bana" sve redom, libc++ pa redom ...
 Problem kod mene sto su putanje zabrljane, ne mogu to sve da skockam na gomilu i da se povuce tacno sto treba, mesaju mi se toolsetovi, nesto povuce iz /usr/local (odatle nista ne sme da vuce za croos-compile) a nesto pak povuce iz direktorijuma koju sam mu specificirao da mi je toolchain.
 
	
	
	
		
	Posts: 1.863 
	Threads: 25 
	Joined: Nov 2013
	
 Reputation: 
797 
	
	
		Dobrodošao u klub   
Juče sam se "drndao" sa ARM GCC na Linux/Windows... 
Nažalost, ne mogu ti konkretno pomoći, ali pitanje je za tebe: da nije možda lakše da instaliraš neku virtelnu mašinu (Virtual Box) i pod njim Linux pa tako?
	 
	
	
	
		
	Posts: 775 
	Threads: 12 
	Joined: Mar 2013
	
 Reputation: 
360 
	
	
		Ako ti nesto pomaze, imam gcc 4.7 koji radi na Windowsu sa Cygwinom, a kompajlira za ARM.
	 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
		
		
		10-07-2018, 06:56 PM 
(This post was last modified: 10-07-2018, 06:59 PM by mikikg.)
		
	 
		@npejcic To mi radi, VMware pod MacOS sa Linuxom unutra i toolchain za RPi, ludnica ali radi ...A to radi zato sto se toolchain podmetne kao default i kada kazes g++ ili ld on skonta “aha za ARM prevodim” i onda povuce sta treba i mislim da onda “zabrlja” ostalo pa ne mozes tu da prevodis za x86 linux osim ako nemas neki tool za “switchovanje” kao sto radi sponenuti croostool-ng ...
 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
	
		Za Android ARM ima jedna bas takva skripta koja exportuje na gomilu tools-ove i biblioteke za target koji izaberes, posebno se uradi za x86 i poebno za ARM i kada se prevodi sve se lepo povuce odatle a na meni je samo da navedem -L i -I do tog foldera prilikom prevodjenja. To radi lepo na svim OS, aliii ja sam na RPi linuxu ne Android linux ... dodje mi da predjem na Android ...
	 
	
	
	
		
	Posts: 1.179 
	Threads: 28 
	Joined: Oct 2014
	
 Reputation: 
320 
	
	
		Ja sam probao i za beaglebone i rpi, linux i win i ništa mi nije radilo. Odlepio sam i batalio. Jeste glupo ali to malo što sam radio sa rpi, radio sam direktno na njemu. Možda probam ponovo, prošlo je dovoljno vremena. Nije ti baš neka pomoć.. jbg
	 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
	
		Hehe, svako ko je pokusao da uradi cross-compile za RPi je odlepio na kraju ... : )
	 
	
	
	
		
	Posts: 775 
	Threads: 12 
	Joined: Mar 2013
	
 Reputation: 
360 
	
	
		Meni radi     Na Linuxu, Linaro  ima kompajlirane kompajlere koji vec gledaju svoje putanje u okviru instalacije, samo treba da se pozove odgovarajuci izvrsni fajl iz instalacije ili da se doda u PATH. Slicnih stvari ima i ovde , Ubuntu i Debian imaju u repozitorijumima gcc-arm-linux-gnueabihf, i to radi bez problema za BeagleBone, za NanoPi 32 i 64-bitni uglavnom, pa sto ne bi i za RPi
	 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
		
		
		10-07-2018, 09:23 PM 
(This post was last modified: 10-07-2018, 09:26 PM by mikikg.)
		
	 
		E ako ti proradilo, proradilo i meni.    
Lepo covek napisao tamo "Before we start anything I recently compiled the toolchain for Rpi3. It will save you a whole bunch of time to download it here rather than go through this proceedure."
https://www.jaredwolff.com/toolchains/ Code: /Volumes/xtools/armv8-rpi3-linux-gnueabihf/bin/armv8-rpi3-linux-gnueabihf-c++ test.c -o app -O3 -s
 ls -la app
 -rwxr-xr-x  1 miki  staff  3776 Oct  7 22:23 app
 
 file app
 app: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 4.3.0, stripped
I radi na RPi .... e to je vec napredak    
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
		
		
		10-07-2018, 09:35 PM 
(This post was last modified: 10-07-2018, 09:38 PM by mikikg.)
		
	 
		BTW: tamo spominju da se ide na ARM-ov sajt i skine toolchain:https://developer.arm.com/open-source/gn.../downloads 
Medjutim sa njim se opet u isti problem dolazi jer mora da mu se specificira opet sve ovo gore sto sam ja pokusavao i za koji target, i da li ima/nema linux itd.
 
Toolchain koji sam skinuo sa https://www.jaredwolff.com/toolchains/  je to isto samo sto mu je u izvrsne fajlove (gcc, g++, ld i ostalo) ustvari hardcodovana sva podesavanja tacno za RPi Linux ARM. 
Crosstool-ng sluzi da se ti alati tako prevedu i konfigurisu, ali kada sam nasao vec to gotovo ne zalazim tamo dalje ...    
	
	
	
		
	Posts: 718 
	Threads: 42 
	Joined: Jul 2015
	
 Reputation: 
442 
	
	
		Rekoh ti ja.     
	
	
	
		
	Posts: 1.863 
	Threads: 25 
	Joined: Nov 2013
	
 Reputation: 
797 
	
	
		Vidim da ste se snašli   
Hvala @enaB, i ja sam se snašao u međuvremenu, postavio sam ovaj kompajler:
https://developer.arm.com/open-source/gn...ain/gnu-rm 
Zatim instalirao ovo: 
http://www.mingw.org/ 
I zanimljivo, meni neočekivao, kada sam uradio "make", kompajler mi je privaljivao grešku za koju sam kasnije shvatio da je inicirana time što nisam kreiro "build" folder u okviru projekta. Nekako sam sledio loguku da će kompajler sve što treba od foldera da kreira... mada kada bolje razmislim, a što bi to on radio    
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
		
		
		10-08-2018, 08:48 AM 
(This post was last modified: 10-08-2018, 09:05 AM by mikikg.)
		
	 
		Treba to malo istestirati, povezati par nekih bibliotekica (npr Boost) i onda probati recimo -O3 flag (maximalna optimizacija) ... Kod mene tako cross-preveden program na RPI onda kaze cuveno "Segmentation Fault", bez toga radi!!! Probajte ...Na RPi kada se prevede isti taj program sa -O3 nemam nikakvih problema, tako daaaaa, nije to sve bas idealno kao sto izgleda .... Ako pocne prevodilac tako da zeza onda od ta posla nema nista, pa ozbiljno ...
 
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
	
		Sta bi se tek desilo da sam hteo Buildroot da pokrenem   https://buildroot.org 
Mislim da pre ovoga treba da proverim da li ima slobodnog mesta u ustanovi "Male Pcelice" posto je tamo guzva velika, ceka se mesto ....    
	
	
	
		
	Posts: 9.200 
	Threads: 145 
	Joined: Apr 2013
	
 Reputation: 
3.835 
	
	
		Korisni linkovi za cross-compile na *nix za ARM procesore: 
Demystifying ARM Floating Point Compiler Options
https://embeddedartistry.com/blog/2017/1...r-options/ 
Objasnjenje i praktican primer
https://freckled.dev/how-to/2019/07/29/c...scompiler/ 
Ovo je bitno takodje:
 
arm-none-eabi  - This tool chain targets for ARM architecture, has no vendor, does NOT target an operating system  and complies with the ARM EABI. 
arm-none-linux-gnueabi  - This toolchain targets the ARM architecture, has no vendor, creates binaries that run on the Linux operating system , and uses the GNU EABI.
	 |