Compiling on the N810
(Allow the reader to follow codenames's backlinks to here.) |
m (added gcc, binutils, and cpp as requirements; they're needed on the latest diablo) |
||
(6 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | To compile software for the N810, you can [[use scratchbox]], the cross-compile-environment for i386 machines. Or you can compile on the device itself. | + | To compile software for the [[Nokia N810|N810]], you can [[:Category:Scratchbox|use scratchbox]], the cross-compile-environment for i386 machines. Or you can compile on the device itself. |
+ | |||
+ | # [[install openssh on the N810]] | ||
+ | # Find out what Maemo version you have. Choose Settings -> Control Panel -> About. If you get "Product maemo Linux based OS2008 Version:5.2008.43-7" this means Maemo 4.1, OS2008 and Diablo ([[Codenames|more information on codenames]]). | ||
+ | # download wget from http://repository.maemo.org/pool/maemo4.1.2/free/w/wget/. Copy it to your computer and scp it to your N810. | ||
+ | # get gcc <pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/gcc-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb</pre> | ||
+ | #get cpp <pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/cpp-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb</pre> | ||
+ | #get binutils <pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/b/binutils/binutils_2.16.91cs2005q3.2-5.osso1_armel.deb</pre> | ||
+ | # get glibc<pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb</pre> | ||
+ | # get linux kernel headers<pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/l/linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_armel.deb</pre> | ||
+ | # get libgcc<pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb</pre> | ||
+ | # install everything<pre>dpkg -i libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb linux-kernel-headers_2.6.16.osso11-1_armel.deb libc6-dev_2.5.0-1osso10_armel.deb gcc-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb cpp-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb binutils_2.16.91cs2005q3.2-5.osso1_armel.deb</pre> | ||
+ | # do the usual test: | ||
+ | |||
+ | <source lang="c"> | ||
+ | /* main.c */ | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main() | ||
+ | { printf("hello world"); } | ||
+ | </source> | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c | Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c | ||
Nokia-N810-43-7:~# ./greeter | Nokia-N810-43-7:~# ./greeter | ||
hello worldNokia-N810-43-7:~# | hello worldNokia-N810-43-7:~# | ||
- | = C++ = | + | == C++ == |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | <ol> | |
- | wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb | + | <li>Try to compile a C++ program: |
- | + | <source lang="cpp"> | |
- | + | // main.cpp | |
- | + | #include <iostream> | |
- | + | int main() | |
- | + | { | |
- | + | std::cout << "hello C++" << std::endl; | |
- | + | } | |
- | + | </source> | |
- | + | <pre> | |
- | + | Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp | |
+ | <unknown> tried to exec cc1plus but failed (No such file or directory) | ||
+ | </pre> | ||
+ | </li> | ||
+ | <li>download g++:<pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb</pre> | ||
+ | </li> | ||
+ | <li> | ||
+ | download lib standard C++:<pre>wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb</pre> | ||
+ | </li> | ||
+ | <li> | ||
+ | install g++:<pre>dpkg -i libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb</pre> | ||
+ | </li> | ||
+ | <li> | ||
+ | try to compile <code>main.cpp</code> again: | ||
+ | <pre> | ||
+ | gcc-3.4 main.cpp | ||
+ | /var/tmp/ccQkm9NS.o: In function `std::__verify_grouping... | ||
+ | </pre> | ||
+ | </li> | ||
+ | <li> | ||
+ | ok, but do it right: | ||
+ | <pre> | ||
+ | gcc-3.4 -lstdc++ main.cpp | ||
+ | ./a.out | ||
+ | hello C++ | ||
+ | </pre> | ||
+ | </li> | ||
+ | </ol> | ||
- | + | [[Category:Development]] | |
- | + | [[Category:HowTo]] | |
- | + | [[Category:Diablo]] | |
- | + |
Latest revision as of 12:18, 2 April 2015
To compile software for the N810, you can use scratchbox, the cross-compile-environment for i386 machines. Or you can compile on the device itself.
- install openssh on the N810
- Find out what Maemo version you have. Choose Settings -> Control Panel -> About. If you get "Product maemo Linux based OS2008 Version:5.2008.43-7" this means Maemo 4.1, OS2008 and Diablo (more information on codenames).
- download wget from http://repository.maemo.org/pool/maemo4.1.2/free/w/wget/. Copy it to your computer and scp it to your N810.
- get gcc
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/gcc-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
- get cpp
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/cpp-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
- get binutils
wget http://repository.maemo.org/pool/maemo4.1.2/free/b/binutils/binutils_2.16.91cs2005q3.2-5.osso1_armel.deb
- get glibc
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb
- get linux kernel headers
wget http://repository.maemo.org/pool/maemo4.1.2/free/l/linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_armel.deb
- get libgcc
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb
- install everything
dpkg -i libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb linux-kernel-headers_2.6.16.osso11-1_armel.deb libc6-dev_2.5.0-1osso10_armel.deb gcc-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb cpp-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb binutils_2.16.91cs2005q3.2-5.osso1_armel.deb
- do the usual test:
/* main.c */ #include <stdio.h> int main() { printf("hello world"); }
Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c Nokia-N810-43-7:~# ./greeter hello worldNokia-N810-43-7:~#
[edit] C++
- Try to compile a C++ program:
// main.cpp #include <iostream> int main() { std::cout << "hello C++" << std::endl; }
Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp <unknown> tried to exec cc1plus but failed (No such file or directory)
- download g++:
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
-
download lib standard C++:
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb
-
install g++:
dpkg -i libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
-
try to compile
main.cpp
again:gcc-3.4 main.cpp /var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...
-
ok, but do it right:
gcc-3.4 -lstdc++ main.cpp ./a.out hello C++
- This page was last modified on 2 April 2015, at 12:18.
- This page has been accessed 20,157 times.