Copyright (c) Hyperion Entertainment and contributors.

Difference between revisions of "Libraries"

From AmigaOS Documentation Wiki
Jump to navigation Jump to search
m
 
(42 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== AmigaDOS ==
+
== Introduction ==
   
  +
A library is a set of related functions and data. For example, the AmigaOS's DOS library contains functions for accessing files and directories, and the Intuition library contains the graphical user interface functions.
[[AmigaDOS Introduction]]
 
   
  +
There are three types of libraries: '''dynamically-loaded shared libraries''', '''dynamically linked libraries''', and '''static libraries'''. Shared libraries are shared by the running programs – only one copy of a library exists in the memory, no matter how many programs are using it. All AmigaOS's libraries are shared libraries. The shared library files can be recognized from the '''.library''' suffix.
[[AmigaDOS Programming]]
 
   
  +
A dynamically linked library is attached to a program during the load time, just before the program is executed. Linked library functions can't be shared by programs, and several copies of the library functions may exist in the memory. The linked library files can be recognized from the '''.so''' suffix.
[[AmigaDOS Device Input and Output]]
 
   
  +
A static library is like a linked library except it is attached permanently to a program when it is created. This makes it impossible for the user to update the library the program is using. Static libraries are supplied with programming languages.
[[AmigaDOS Filing System]]
 
   
  +
== Shared Libraries ==
[[AmigaDOS Data Structures]]
 
  +
=== AmigaDOS ===
   
[[AmigaDOS Packets]]
+
[[AmigaDOS Introduction]]
 
[[AmigaDOS Vector-Port]]
 
   
[[Advanced Information]]
+
[[DOS Library]]
  +
:[[AmigaDOS Data Structures|Data Structures]]
  +
:[[Program Startup]]
  +
:[[Basic Input and Output Programming]]
  +
:[[Executing External Programs]]
  +
:[[Cooperative Record Locking]]
  +
:[[Notification]]
  +
:[[Path Name Handling]]
  +
:[[Pattern Matching]]
  +
:[[Multiple Assigns]]
  +
:[[AmigaDOS Packets|Packets]]
  +
:[[AmigaDOS Vector-Port|Vector-Port]]
  +
:[[Hard and Soft Links]]
  +
:[[Writing a UserShell]]
  +
:[[AmigaDOS Device Input and Output|Device Input and Output]]
   
  +
=== User Interface Libraries ===
[[Cooperative Record Locking]]
 
   
  +
[[Intuition Library]]
[[Writing a UserShell]]
 
  +
:[[Intuition Screens|Screens]]
 
  +
::[[Custom_Screen_Type|Custom Screen Type]]
[[Notification]]
 
  +
::[[Public_Screen_Type|Public Screen Type]]
 
  +
:[[Intuition Windows|Windows]]
[[Path Name Handling]]
 
  +
::[[Window Types|Types]]
 
  +
::[[Window Structures and Functions|Structures and Functions]]
[[Pattern Matching]]
 
  +
::[[Window Communication|Communicating with Intuition]]
 
  +
::[[Window Display Preservation|Display Preservation]]
[[Multiple Assigns]]
 
  +
:[[Intuition Gadgets|Gadgets]]
 
  +
::[[Boolean_Gadget_Type|Boolean Gadget Type]]
== User Interface Libraries ==
 
  +
::[[Proportional_Gadget_Type|Proportional Gadget Type]]
 
  +
::[[String_Gadget_Type|String Gadget Type]]
[[Intuition and the Amiga Graphical User Interface]]
 
  +
:[[Intuition Menus|Menus]]
 
[[Intuition Screens]]
+
::[[Intuition Classic Menus|Classic Menus]]
  +
::[[Intuition Menu Class|Menu Class]]
:[[Custom_Screen_Type|Custom Screen Type]]
 
  +
::[[Intuition Context Menus|Context Menus]]
:[[Public_Screen_Type|Public Screen Type]]
 
  +
:[[Intuition Requesters|Requesters]]
 
[[Intuition Windows]]
+
:[[Intuition Alerts|Alerts]]
  +
:[[Intuition Images, Line Drawing and Text|Images, Line Drawing and Text]]
 
[[Intuition Gadgets]]
+
::[[Intuition Images|Images]]
  +
::[[Intuition Borders|Borders]]
:[[Boolean_Gadget_Type|Boolean Gadget Type]]
 
  +
::[[Intuition Text|Text]]
:[[Proportional_Gadget_Type|Proportional Gadget Type]]
 
  +
:[[Intuition Input and Output Methods|Input and Output Methods]]
:[[String_Gadget_Type|String Gadget Type]]
 
  +
:[[Intuition Mouse|Mouse]]
 
[[Intuition Menus]]
+
:[[Intuition Keyboard|Keyboard]]
  +
:[[Intuition Pointer|Pointer]]
 
[[Intuition Requesters and Alerts]]
+
:[[Intuition Special Functions|Special Functions]]
  +
:[[BOOPSI - Object Oriented Intuition]]
 
  +
::[[BOOPSI Gadgets]]
[[Intuition Images, Line Drawing and Text]]
 
  +
::[[BOOPSI Images]]
 
  +
::[[BOOPSI Class Reference]]
[[Intuition Input and Output Methods]]
 
 
[[Intuition Mouse and Keyboard]]
 
 
[[Intuition Special Functions]]
 
 
[[BOOPSI - Object Oriented Intuition]]
 
:[[BOOPSI Gadgets]]
 
:[[BOOPSI Images]]
 
:[[BOOPSI Class Reference]]
 
 
[[Preferences]]
 
   
 
[[Workbench Library]]
 
[[Workbench Library]]
   
 
[[Icon Library]]
 
[[Icon Library]]
  +
  +
[[Locale Library]]
   
 
[[GadTools Library]]
 
[[GadTools Library]]
Line 72: Line 76:
   
 
[[ASL Library]]
 
[[ASL Library]]
  +
:[[ASL File Requester|File Requester]]
  +
:[[ASL Font Requester|Font Requester]]
  +
:[[ASL Screen Mode Requester|Screen Mode Requester]]
   
 
[[Application Library]]
 
[[Application Library]]
  +
:[[PrefsObjects]]
   
  +
[[Preferences]]
== Graphics Libraries ==
 
  +
  +
=== Graphics Libraries ===
   
 
[[Graphics Library]]
 
[[Graphics Library]]
 
:[[Display Database]]
 
:[[Display Database]]
:[[Graphics Primitives]]
+
:[[Graphics Primitives|Primitives]]
::[[Classic Graphics Primitives]]
+
::[[Classic Graphics Primitives|Classic Primitives]]
:[[Graphics Sprites, Bobs and Animation]]
+
:[[Graphics Sprites, Bobs and Animation|Sprites, Bobs and Animation]]
 
::[[Hardware Sprites]]
 
::[[Hardware Sprites]]
 
::[[Virtual Sprites|Virtual Sprites (VSprites)]]
 
::[[Virtual Sprites|Virtual Sprites (VSprites)]]
 
::[[Blitter Objects|Blitter Objects (Bobs)]]
 
::[[Blitter Objects|Blitter Objects (Bobs)]]
:[[Graphics Library and Text]]
+
:[[Graphics Library and Text|Text]]
:[[Graphics Regions]]
+
:[[Graphics Regions|Regions]]
  +
:[[Graphics Composited Video|Composited Video]]
  +
:[[Graphics Video Overlay|Video Overlay]]
  +
:[[Graphics Minterms|Minterms]]
   
 
[[Layers Library]]
 
[[Layers Library]]
   
== Additional Libraries ==
+
=== Additional Libraries ===
   
 
[[AmigaGuide Library]]
 
[[AmigaGuide Library]]
Line 99: Line 112:
   
 
[[Datatypes Library]]
 
[[Datatypes Library]]
  +
:[[Writing Datatype Classes]]
   
 
[[IFFParse Library]]
 
[[IFFParse Library]]
Line 107: Line 121:
   
 
[[Newlib Library]]
 
[[Newlib Library]]
  +
  +
[[PThreads Library]]
   
 
[[RealTime Library]]
 
[[RealTime Library]]
Line 112: Line 128:
 
[[Translator Library]]
 
[[Translator Library]]
   
  +
[[DiskIO Library|Disk I/O Library]]
== Third-Party Libraries ==
 
  +
  +
=== 68k Libraries ===
  +
  +
[[Math Libraries]]
  +
  +
=== Third-Party Libraries ===
   
 
[[Expat Library]]
 
[[Expat Library]]
Line 118: Line 140:
 
[[Filesysbox Library]]
 
[[Filesysbox Library]]
   
== Appendices ==
+
== Linked Libraries ==
   
[[Linker Libraries]]
+
=== Audio Libraries ===
  +
libao
   
  +
libogg
== 68k Libraries ==
 
   
  +
libvorbis
[[Math Libraries]]
 
  +
  +
libvorbisenc
  +
  +
libvorbisfile
  +
  +
=== C/C++ Programming Language Libraries ===
  +
libc
  +
  +
libgcc
  +
  +
libgcov
  +
  +
libicudata
  +
  +
libicuuc
  +
  +
libstdc++
  +
  +
=== Compression Libraries ===
  +
libz
  +
  +
libbz2
  +
  +
=== Database Libraries ===
  +
libsqlite
  +
  +
=== Dynamic Linking Libraries ===
  +
libdl
  +
  +
=== File System Libraries ===
  +
libntfs
  +
  +
=== File Transfer Libraries ===
  +
libcurl
  +
  +
libssl
  +
  +
=== Graphics Libraries ===
  +
libcairo
  +
  +
libfontconfig
  +
  +
libfreetype
  +
  +
libjpeg
  +
  +
libpixman
  +
  +
libpng
  +
  +
libpng12
  +
  +
libSDL
  +
  +
libSDL_gfx
  +
  +
=== Parallel Execution Libraries ===
  +
libpthread
  +
  +
=== Python Programming Language Libraries ===
  +
libpython
  +
  +
=== XML Libraries ===
  +
libexpat
  +
  +
libxml
  +
  +
libxslt
  +
  +
== Static Libraries ==
  +
  +
[[Linker Libraries]]

Latest revision as of 14:24, 27 March 2019

Introduction

A library is a set of related functions and data. For example, the AmigaOS's DOS library contains functions for accessing files and directories, and the Intuition library contains the graphical user interface functions.

There are three types of libraries: dynamically-loaded shared libraries, dynamically linked libraries, and static libraries. Shared libraries are shared by the running programs – only one copy of a library exists in the memory, no matter how many programs are using it. All AmigaOS's libraries are shared libraries. The shared library files can be recognized from the .library suffix.

A dynamically linked library is attached to a program during the load time, just before the program is executed. Linked library functions can't be shared by programs, and several copies of the library functions may exist in the memory. The linked library files can be recognized from the .so suffix.

A static library is like a linked library except it is attached permanently to a program when it is created. This makes it impossible for the user to update the library the program is using. Static libraries are supplied with programming languages.

Shared Libraries

AmigaDOS

AmigaDOS Introduction

DOS Library

Data Structures
Program Startup
Basic Input and Output Programming
Executing External Programs
Cooperative Record Locking
Notification
Path Name Handling
Pattern Matching
Multiple Assigns
Packets
Vector-Port
Hard and Soft Links
Writing a UserShell
Device Input and Output

User Interface Libraries

Intuition Library

Screens
Custom Screen Type
Public Screen Type
Windows
Types
Structures and Functions
Communicating with Intuition
Display Preservation
Gadgets
Boolean Gadget Type
Proportional Gadget Type
String Gadget Type
Menus
Classic Menus
Menu Class
Context Menus
Requesters
Alerts
Images, Line Drawing and Text
Images
Borders
Text
Input and Output Methods
Mouse
Keyboard
Pointer
Special Functions
BOOPSI - Object Oriented Intuition
BOOPSI Gadgets
BOOPSI Images
BOOPSI Class Reference

Workbench Library

Icon Library

Locale Library

GadTools Library

GadTools Menus
GadTools Gadgets

ASL Library

File Requester
Font Requester
Screen Mode Requester

Application Library

PrefsObjects

Preferences

Graphics Libraries

Graphics Library

Display Database
Primitives
Classic Primitives
Sprites, Bobs and Animation
Hardware Sprites
Virtual Sprites (VSprites)
Blitter Objects (Bobs)
Text
Regions
Composited Video
Video Overlay
Minterms

Layers Library

Additional Libraries

AmigaGuide Library

Camd Library

Commodities Exchange Library

Datatypes Library

Writing Datatype Classes

IFFParse Library

Parsing IFF
Writing IFF

Keymap Library

Newlib Library

PThreads Library

RealTime Library

Translator Library

Disk I/O Library

68k Libraries

Math Libraries

Third-Party Libraries

Expat Library

Filesysbox Library

Linked Libraries

Audio Libraries

libao

libogg

libvorbis

libvorbisenc

libvorbisfile

C/C++ Programming Language Libraries

libc

libgcc

libgcov

libicudata

libicuuc

libstdc++

Compression Libraries

libz

libbz2

Database Libraries

libsqlite

Dynamic Linking Libraries

libdl

File System Libraries

libntfs

File Transfer Libraries

libcurl

libssl

Graphics Libraries

libcairo

libfontconfig

libfreetype

libjpeg

libpixman

libpng

libpng12

libSDL

libSDL_gfx

Parallel Execution Libraries

libpthread

Python Programming Language Libraries

libpython

XML Libraries

libexpat

libxml

libxslt

Static Libraries

Linker Libraries