Difference between revisions of "The First Traditional "Hello world!""

From MorphOS Library

("Hello World!" With the Standard C Library: More contents.)
("Hello World!" With the Standard C Library: More contents.)
Line 20: Line 20:
  
 
The compiler produces ''helloworld'' executable, which has 10 340 bytes on my system. Note that MorphOS pays little attention to filename extensions, so ending the executable name with ''.exe'' is not needed, however possible. Traditionally MorphOS executables are named without any extensions. The '''-o''' compiler option specifies desired executable name. If this option is not given, the executable will be named ''a.out'' (for some historical reasons).
 
The compiler produces ''helloworld'' executable, which has 10 340 bytes on my system. Note that MorphOS pays little attention to filename extensions, so ending the executable name with ''.exe'' is not needed, however possible. Traditionally MorphOS executables are named without any extensions. The '''-o''' compiler option specifies desired executable name. If this option is not given, the executable will be named ''a.out'' (for some historical reasons).
 +
 +
As stated in the [[Installation_of_Software_Development_Kit_and_its_basic_usage#Standard_C_and_C++_Libraries|SDK section]], the standard C library will be delivered by ''ixemul.library''. It can be easily confirmed by tracing disk activity of ''helloworld'' using ''Snoopium'' tool.
 +
 +
[[File:snoopium_ixemul.png]]
 +
 +
It can be also seen that many other libraries are also opened including ones related to TCP/IP networking. It looks like overkill for such a small program. This happens, because ''ixemul.library'' creates a complete unixlike environment for the application, which is not needed in this simple case. That is why ''libnix'' alternative is recommended for the standard library. To use it, a '''-noixemul''' option has to be added, so the compiler is called as follows:
 +
 +
<tt>gcc -noixemul -o helloworld helloworld.c</tt>
  
 
=="Hello World!" With MorphOS Native API==
 
=="Hello World!" With MorphOS Native API==

Revision as of 10:21, 23 October 2010

Grzegorz Kraszewski


"Hello World!" With the Standard C Library

With the standard C library, one can use the "Hello World!" example exactly as found in a C handbook. It is given below, just for completness:


#include <stdio.h>

int main(void)
{
  printf("Hello World!\n");
  return 0;
}


This source may be copied to a text editor and saved as helloworld.c. To compile it, one opens a shell window (from Ambient menu, or using rcommand + n key combo) and changes current directory to the one, where C source is located. The compiler is ran as follows:

gcc -o helloworld helloworld.c

The compiler produces helloworld executable, which has 10 340 bytes on my system. Note that MorphOS pays little attention to filename extensions, so ending the executable name with .exe is not needed, however possible. Traditionally MorphOS executables are named without any extensions. The -o compiler option specifies desired executable name. If this option is not given, the executable will be named a.out (for some historical reasons).

As stated in the SDK section, the standard C library will be delivered by ixemul.library. It can be easily confirmed by tracing disk activity of helloworld using Snoopium tool.

Snoopium ixemul.png

It can be also seen that many other libraries are also opened including ones related to TCP/IP networking. It looks like overkill for such a small program. This happens, because ixemul.library creates a complete unixlike environment for the application, which is not needed in this simple case. That is why libnix alternative is recommended for the standard library. To use it, a -noixemul option has to be added, so the compiler is called as follows:

gcc -noixemul -o helloworld helloworld.c

"Hello World!" With MorphOS Native API