Compiling on the N810: Difference between revisions

From Maemo Wiki
Jump to navigationJump to search
corrected dpkg line
imported>u7knv9h
added gcc, binutils, and cpp as requirements; they're needed on the latest diablo
Line 4: Line 4:
# 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]]).
# 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.
# 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-3To 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 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 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>
# 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</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:~# ./greeter
hello worldNokia-N810-43-7:~#
== C++ ==
<ol>
<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]]
.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</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</pre>
# do the usual test:
# do the usual test:

Revision as of 12:14, 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.

  1. install openssh on the N810
  2. 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).
  3. 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.
  4. 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
  5. 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
  6. get binutils
    wget http://repository.maemo.org/pool/maemo4.1.2/free/b/binutils/binutils_2.16.91cs2005q3.2-5.osso1_armel.deb
  7. get glibc
    wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb
  8. 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
  9. get libgcc
    wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3To 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

  1. 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
  2. get binutils
    wget http://repository.maemo.org/pool/maemo4.1.2/free/b/binutils/binutils_2.16.91cs2005q3.2-5.osso1_armel.deb
  3. get glibc
    wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb
  4. 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
  5. 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
  6. 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
  7. do the usual test:

<source lang="c"> /* main.c */

  1. include <stdio.h>

int main() { printf("hello world"); } </source>

Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c
Nokia-N810-43-7:~# ./greeter
hello worldNokia-N810-43-7:~#

C++

  1. Try to compile a C++ program: <source lang="cpp"> // main.cpp
    1. include <iostream>
    int main() { std::cout << "hello C++" << std::endl; } </source>
    Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp
     <unknown> tried to exec cc1plus but failed (No such file or directory)
    
  2. 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
  3. 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
  4. 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
  5. try to compile main.cpp again:
    gcc-3.4 main.cpp
    /var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...
    
  6. ok, but do it right:
    gcc-3.4 -lstdc++ main.cpp
    ./a.out
    hello C++
    

.4/libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb

  1. 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
  2. do the usual test:

<source lang="c"> /* main.c */

  1. include <stdio.h>

int main() { printf("hello world"); } </source>

Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c
Nokia-N810-43-7:~# ./greeter
hello worldNokia-N810-43-7:~#

C++

  1. Try to compile a C++ program: <source lang="cpp"> // main.cpp
    1. include <iostream>
    int main() { std::cout << "hello C++" << std::endl; } </source>
    Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp
     <unknown> tried to exec cc1plus but failed (No such file or directory)
    
  2. 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
  3. 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
  4. 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
  5. try to compile main.cpp again:
    gcc-3.4 main.cpp
    /var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...
    
  6. ok, but do it right:
    gcc-3.4 -lstdc++ main.cpp
    ./a.out
    hello C++