Rogue Wave banner
Previous fileTop of DocumentContentsNext file

4.6 Compiling in Windows with MSVC

This section describes how to use Microsoft Visual C++ compilers to compile programs that use Rogue Wave's LAPACK.h++ class library.

4.6.1 Using a Static Version of LAPACK.h++ (MSVC)

Before starting, be sure that the Microsoft environment variables PATH, INCLUDE, and LIB are set to the proper search path for the Microsoft compiler, the system #include header files, and the libraries, respectively.

Let's say that we have a file named myapp.cpp and that we are compiling it in a Windows NT MS-DOS command prompt. Let's also say that our LAPACK.h++ header files are located in c:\rwav\workspaces\WINNT4\MSVC60\0s, and that we built static, single-threaded, no debug versions of LAPACK.h++, Math.h++ and Tools.h++ named, respectively, lpk0s.lib, mth0s.lib and tls0s.lib. Then we can compile myapp.cpp with the Microsoft C++ compiler with the following command (all on one line):

The entire command line must be typed without carriage returns. Your operating system might have a line length limit. If your command line gets too long, use a response file.

This command will compile and link in one step.


NOTE: Even if you are compiling a LAPACK.h++ Windows NT or Windows 95 console program, you still need to link in the user32.lib library, because Tools.h++ uses the Windows message box to report errors.

4.6.2 Using a Dynamic Version of LAPACK.h++ (MSVC)

Microsoft Visual C++ allows you to create a LAPACK.h++ DLL under Windows 95 and Windows NT.

To use the 32-bit DLL version of LAPACK.h++, you must:

  1. Use the Microsoft runtime DLL.

  2. Use the DLL version of Tools.h++.

  3. Define the macros RW_LAPACK, _RWLAPACKDLL, _RWMATHDLL, _RWTOOLSDLL, and _RTLDLL on the compiler command line. This tells the header files to configure for dynamic linking. If LAPACK.h++ is also using the Standard C++ Library, you must also define _RWSTDDLL. See the Tools.h++ Getting Started guide for more information on using the Standard C++ Library with Tools.h++.

  4. In addition, you must defined the macros RW_MULTI_THREAD, and _REENTRANT when using a multithreaded version of the library.

  5. Use the -MD or -MDd option on the compiler command line in order to use the release or debug version, respectively, of the Microsoft runtime library DLL.

  6. You must link your program with the Math.h++, Tools.h++ and LAPACK.h++ import libraries. Example names of the import libraries are:

  7. When you run your program, the LAPACK.h++, Math.h++, Tools.h++, Standard C++ Library, and Microsoft runtime library DLLs must be in one of the following places:

If you get exceptions, especially in *.DLLs, and you can't figure out where they're coming from, you may have incompatible *.DLLs running. Check for incompatible.DLLs in your path.

4.6.3 Compiling from Microsoft Visual Studio

To build a program that uses LAPACK.h++ under the Microsoft Visual Studio development environment, you must add the Rogue Wave include path, such as <rw_root>\workspaces\WINNT<ver>\MSVC<ver>\<buildtype>, to your studio configuration. Use the menu selection Tools | Options... to bring up the options dialog. Select the Directories tab, select Include Files from the Show Directories For: drop-down box, and add the necessary include paths.

You will also need to define any macros and compiler switches required to use a particular configuration of the LAPACK.h++, Math.h++, and Tools.h++ products.

See the Microsoft Visual Studio help system for instructions on making changes to a project configuration.


Previous fileTop of DocumentContentsNext file

©Copyright 1999, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.