Statically-linked Applications
For summary tables of linking requirements for statically-linked applications, see Table 19 (Windows) and Table 20 (UNIX) below. For notes on running the resulting application, see Runtime Issues.
When building a statically-linked DB Interface Module application, you must link to a database-specific object file. The object file is in charge of notifying the RWDBManager object that the access module must be reached through a static link rather than through runtime binding.
The object files follow this naming convention:
rw<product-mnemonic><buildtag>.<extension>
where
<product-mnemonic> is the three-letter mnemonic for the access library
<buildtag> is the build tag assigned by RCB when the access module library was built, which depends on the naming convention you chose
<extension> is the operating system object file extension, either .o for UNIX systems or .obj for Windows
For the Oracle access module library built in the 12s configuration, the object file would be named rwoci12s.obj on Windows and rwoci12s.o on UNIX.
Table 19 summarizes the libraries and object files you must link to on Windows using MSVC. After Table 19, Table 20 shows UNIX requirements.
Table 19. Objects and libraries required for static builds of SourcePro DB applications with MSVC
|
Microsoft SQL Server
|
buildspace\lib\rwmsq<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\msq<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
buildspace\lib\tls<buildtag>.lib
|
DB Interface Module library Essential Tools Module library
|
|
odbc32.lib
|
Import library supplied by Microsoft. (Unless “Use runtime loading of driver? = ’Yes’” was specified during buildspec creation.)
|
|
Required system libraries
|
For example, user32.lib
|
|
MySQL
|
buildspace\lib\rwmys<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\mys<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
|
DB Interface Module library
|
|
buildspace\lib\tls<buildtag>.lib
|
Essential Tools Module library
|
|
libmysql.lib
|
Import library for MySQL C API
|
|
libmariadb.lib
|
Import library for MariaDB. (Use the import library for MySQL as above, or MariaDB, depending on your underlying library.)
|
|
Required system libraries
|
For example, user32.lib
|
|
PostgreSQL
|
buildspace\lib\rwpgs<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\pgs<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
|
DB Interface Module library
|
|
buildspace\lib\tls<buildtag>.lib
|
Essential Tools Module library
|
|
libpq.lib
|
Import library for the libpq API supplied by PostgreSQL
|
|
Required system libraries
|
For example, user32.lib
|
|
DB2 CLI
|
buildspace\lib\rwdb2<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\db2<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
buildspace\lib\tls<buildtag>.lib
|
DB Interface Module library Essential Tools Module library
|
|
DB2PATH\lib\db2cli.lib
|
Import library supplied by IBM for DB2 CLI. (Unless “Use runtime loading of driver? = ’Yes’” was specified during buildspec creation.)
|
|
Required system libraries
|
For example, user32.lib
|
|
ODBC
|
buildspace\lib\rwodb<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\odb<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
buildspace\lib\tls<buildtag>.lib
|
DB Interface Module library Essential Tools Module library
|
|
ODBC\lib\client-library-name.lib
|
Import library supplied by Microsoft or ODBC driver vendor; for example, odbc32.lib.
|
|
Required system libraries
|
For example, user32.lib
|
|
Oracle OCI
|
buildspace\lib\rwoci<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\oci<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
buildspace\lib\tls<buildtag>.lib
|
DB Interface Module library Essential Tools Module library
|
|
ORACLE\oci\lib\msvc\oci.lib
|
Import library supplied by Oracle for Oracle OCI library.
|
|
Required system libraries
|
For example, user32.lib
|
|
Sybase
|
buildspace\lib\rwctl<buildtag>.obj
|
DB Access Module object file
|
|
buildspace\lib\ctl<buildtag>.lib
|
DB Access Module library
|
|
buildspace\lib\dbt<buildtag>.lib
buildspace\lib\tls<buildtag>.lib
|
DB Interface Module library Essential Tools Module library
|
|
SYBASE\lib\client-library-name.lib
|
Import libraries supplied by Sybase for Open Client Client-Library, including libsybct.lib, libsybcs.lib, and libsybblk.lib.
|
|
Required system libraries
|
For example, user32.lib
|
Table 20 summarizes the libraries and objects you must link to on UNIX platforms. The library links use the -llibrary-name convention, which assumes that you have set the path to the library directories with the -L flag.
On UNIX, link order is significant. Link the objects and libraries in the order listed in the table.
Table 20. Objects and libraries required for static builds of SourcePro DB applications on UNIX
|
DB2 CLI
|
buildspace/lib/rwdb2<buildtag>.o
|
DB Access Module object file
|
|
-ldb2<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
-ltls<buildtag>
|
DB Interface Module library Essential Tools Module library
|
|
Library vendor libraries
|
For example, -ldb2 (Unless “Use runtime loading of driver? = ’Yes’” was specified during buildspec creation.)
|
|
Required system libraries
|
For example, -lnsl -ldl
|
|
MySQL
|
buildspace/lib/rwmys<buildtag>.o
|
DB Access Module object file
|
|
-lmys<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
|
DB Interface Module library
|
|
-ltls<buildtag>
|
Essential Tools Module library
|
|
-lmysqlclient
|
MySQL vendor library
|
|
-lmariadb
|
MariaDB vendor library (Use the vendor library for either MySQL or MariaDB, but not both.)
|
|
Required system libraries
|
For example, -lnsl -ldl
|
|
MS SQL
|
buildspace/lib/rwodb<buildtag>.o
|
DB Access Module object file
|
|
-lodb<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
-ltls<buildtag>
|
DB Interface Module library Essential Tools Module library
|
|
Library vendor libraries
|
For example, -lodbc
|
|
Required system libraries
|
For example, -lnsl -ldl
|
|
ODBC
|
buildspace/lib/rwodb<buildtag>.o
|
DB Access Module object file
|
|
-lodb<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
-ltls<buildtag>
|
DB Interface Module library Essential Tools Module library
|
|
Library vendor libraries
|
For example, -lodbc
|
|
Required system libraries
|
For example, -lnsl -ldl
|
|
Oracle OCI
|
buildspace/lib/rwoci<buildtag>.o
|
DB Access Module object file
|
|
-loci<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
-ltls<buildtag>
|
DB Interface Module library Essential Tools Module library
|
|
Library vendor libraries
|
For example, -lclntsh
|
|
Required system libraries
|
For example, -lnsl -ldl
|
|
PostgreSQL
|
buildspace/lib/rwpgs<buildtag>.o
|
DB Access Module object file
|
|
-lpgs<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
|
DB Interface Module library
|
|
-ltls<buildtag>
|
Essential Tools Module library
|
|
-lpq
|
Postgres vendor client library
|
|
Required system libraries
|
For example, -lnsl -ldl
|
|
Sybase
|
buildspace/lib/rwctl<buildtag>.o
|
DB Access Module object file
|
|
-lctl<buildtag>
|
DB Access Module library
|
|
-ldbt<buildtag>
-ltls<buildtag>
|
DB Interface Module library Essential Tools Module library
|
|
Library vendor libraries
|
For example, -lct
|
|
Required system libraries
|
For example, -lnsl -ldl
|