1 ********************************************************************** 2 * INSTALL file for STLport 5.2 * 3 * * 4 ********************************************************************** 5 6 STLport is a full ANSI C++ Standard library. 7 8 This distribution contains STLport sources only, no binaries. 9 To use STLport iostreams, locale and complex numbers, you have 10 to build STLport library from sources and link your programs with it. 11 12 Starting with 5.0 the 'wrapper' mode is not supported anymore. 13 You cannot use native compiler iostreams implementation with STLport STL 14 (see doc/FAQ for explanations). 15 16 ==== Installing STLport ========== 17 18 0) DO NOT overwrite/move/rename header files coming with the compiler, 19 even if you made a backup---STLport need this headers and don't 20 override ones. 21 22 1) Run 23 24 ./configure --help 25 26 read options description; if you use compiler 27 different from gcc, pay attention to --use-compiler-family= option. 28 29 2) Run 30 31 ./configure <option> 32 33 Options here more-or-less traditional. 34 35 Note: ./configure give hints only for library build, it dosen't 36 create/edit any headers, check you system etc. This is simple way 37 to store custom options, not more. If you want to change default 38 behaviour of STLport, see stlport/stl/config/user_config.h and 39 stlport/stl/config/host.h; read the comments in this files! 40 Not all combinations of options healthy, you should understand 41 what you do. If not, keep all unchanged. 42 43 Note: you can find all recognised 'settings' in the file 44 build/Makefiles/gmake/config.mak 45 46 This is generated file, but only ./configure will rewrite one. 47 48 3) Run 49 50 make && make check 51 52 Only GNU Make supported! Preferred verion of GNU Make >= 3.81; 53 never use GNU Make before 3.79 --- build not work properly; 54 GNU makes >= 3.79 and < 3.81 may fail to build library/tests 55 properly, due to bugs; but the real results depends upon 56 platform. 57 58 4) If build fine, become superuser and run 59 60 make install 61 62 Note: you can use --prefix= to change installation path 63 (or macro DESTDIR, as usual), or even skip installation and use 64 STLport in-place. 65 66 ==== Usage STLport ========== 67 68 1) The best way to understand how to use it, is to see on compilation, 69 linking, running unit tests, i.e. see on options when you do 70 71 (cd build/test/unit; make check) 72 73 2) Make sure "stlport" directory of this distribution comes before 74 compiler's one in your include paths (something like 75 -I<base install path>/stlport); never rename 'stlport' part of path! 76 77 Compilation: 78 79 c++ -pthread -fexceptions -O2 -I/usr/local/include/stlport -c -o test.o test.cc 80 81 In case of gcc, libstlport replace libstdc++ (not in all cases!) 82 83 Link, variant 1: 84 85 c++ -pthread -fexceptions -O2 -I/usr/local/include/stlport -nostdlib -o mytest \ 86 /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../crt1.o \ 87 /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../crti.o \ 88 /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/crtbegin.o \ 89 test.o \ 90 -lstlport \ 91 -lgcc_s -lpthread -lc -lm \ 92 /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/crtend.o \ 93 /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../crtn.o 94 95 Of cause, names of start/stop files not hardcoded, you can locate it with 96 97 c++ -print-file-name=crt1.o 98 99 Link, variant 2: 100 101 gcc -pthread -fexceptions -O2 -I/usr/local/include/stlport -o mytest \ 102 test.o -lstlport 103 104 If you use gcc before 3.3, you must link with libstdc++, because 105 language-support library (libsupc++.a) don't contain necessary 106 functions. 107 108 3) STLport builds only multithreaded libraries (by default), so your 109 application should be compiled as multithreaded, too. Use -pthread 110 (or -pthreads on Solaris) option for GCC, -mt for SunPro and so on. 111 Sometimes you should define _REENTRANT or something else, depends 112 upon platform/compiler. See compiler's and linker's options 113 on command line when you build unit tests (build/test/unit) 114 for reference. The last is useful for ANY platform (special 115 attention for Windows users). 116 117 4) Don't hesitate to read READMEs (doc/README*, build/lib/README*, 118 build/test/unit/README*) and doc/FAQ. 119 120 5) Have fun! 121