STLport and VAC++ for OS/2

From EDM2
Jump to: navigation, search

by Darrell Spice

STLport is a multiplatform ANSI C++ Standard library. Using it adds the missing standard libraries, such as the standard string class, to Visual Age C++ (VAC++). I'm using version 3.08 of VAC++.

  1. Download STLport, I got version 4.0
  2. Unzip into your IBMCPP directory
  3. Modify your config.sys file to put the STLport files first in the INCLUDE path mine was
    SET INCLUDE=D:\IBMCPP\INCLUDE;D:\IBMCPP\INCLUDE\OS2;D:\IBMCPP\INC;D:\IBMCPP\INCLUDE\SOM;C:\JAVA11\INCLUDE;C:\JAVA11\INCLUDE\OS2;
    I changed it to
    SET INCLUDE=D:\IBMCPP\STLport-4.0\STLport;D:\IBMCPP\INCLUDE;D:\IBMCPP\INCLUDE\OS2;D:\IBMCPP\INC;D:\IBMCPP\INCLUDE\SOM;C:\JAVA11\INCLUDE;C:\JAVA11\INCLUDE\OS2;
  4. In STLport version 4.0, the IOSTREAM class isn't ready for VAC++, so we must configure STLport to use VAC++'s version instead
    a. Edit file D:\ibmcpp\stlport-4.0\stlport\stl\_site_config.h
    b. add the following line at the top of _site_config.h
    #define __STL_NO_SGI_IOSTREAMS
  5. Compile your project - you'll get some unresolved external link errors
  6. a new directory, tempinc will show up in your project's directory - we need to add it to VAC++'s list of source code directories
    Vacprop.png
    a. Bring up your project's properties dialog
    b. select the Location tab
    c. add the tempinc directory to the list - my list for Stella/2 looks like this
  7. Rebuild your MAKEFILE - don't forget to add the new source files from TEMPINC
  8. Recompile your project
  9. More files may show up in the TEMPINC directory - if so, go back to step 7.