123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- TinyCC
- ======
- This file contains specific information for usage of TinyCC
- under MS-Windows. See tcc-doc.html to have all the features.
- Installation from the binary ZIP package:
- -----------------------------------------
- Unzip the package to a directory of your choice.
-
- Set the system PATH:
- --------------------
- To be able to invoke the compiler from everywhere on your computer by
- just typing "tcc", please add the directory containing tcc.exe to your
- system PATH.
- Include and library search paths
- --------------------------------
- On windows, the standard "include" and "lib" directories are searched
- relatively from the location of the executables (tcc.exe, libtcc.dll).
- Examples:
- ---------
- Open a console window (DOS box) and 'cd' to the examples directory.
- For the 'Fibonacci' example type:
- tcc fib.c
- For the 'Hello Windows' GUI example type:
- tcc hello_win.c
- For the 'Hello DLL' example type
- tcc -shared dll.c
- tcc -impdef dll.dll (optional)
- tcc hello_dll.c dll.def
- Using libtcc as JIT compiler in your program
- --------------------------------------------
- Check out the 'libtcc_test' example:
- - Running it from source:
- tcc -I libtcc libtcc/libtcc.def -run examples/libtcc_test.c
- - Compiling with TCC:
- tcc examples/libtcc_test.c -I libtcc libtcc/libtcc.def
- - Compiling with MinGW:
- gcc examples/libtcc_test.c -I libtcc libtcc.dll -o libtcc_test.exe
- - Compiling with MSVC:
- lib /def:libtcc\libtcc.def /out:libtcc.lib
- cl /MD examples/libtcc_test.c -I libtcc libtcc.lib
- Import Definition Files:
- ------------------------
- To link with Windows system DLLs, TCC uses import definition
- files (.def) instead of libraries.
- The now built-in 'tiny_impdef' program may be used to make
- additional .def files for any DLL. For example
- tcc -impdef [-v] opengl32.dll [-o opengl32.def]
- Put opengl32.def into the tcc/lib directory. Specify -lopengl32 at
- the TCC commandline to link a program that uses opengl32.dll.
- Header Files:
- -------------
- The system header files (except _mingw.h) are from the MinGW
- distribution:
- http://www.mingw.org/
- From the windows headers, only a minimal set is included. If you need
- more, get MinGW's "w32api" package. Extract the files from "include"
- into your "tcc/include/winapi" directory.
- Resource Files:
- ---------------
- TCC can link windows resources in coff format as generated by MinGW's
- windres.exe. For example:
- windres -O coff app.rc -o appres.o
- tcc app.c appres.o -o app.exe
- Tiny Libmaker:
- --------------
- The now built-in tiny_libmaker tool by Timovj Lahde can be used as
- 'ar' replacement to make a library from several object files:
- tcc -ar [rcsv] library objectfiles ...
- Compilation from source:
- ------------------------
- * You can use the MinGW and MSYS tools available at
- http://www.mingw.org
- http://www.mingw-w64.org
- http://www.msys2.org
- Untar the TCC archive and type in the MSYS shell:
- ./configure [--prefix installpath]
- make
- make install
- The default install location is c:\Program Files\tcc
- Cygwin can be used too with its mingw cross-compiler installed:
- ./configure --cross-prefix=i686-w64-mingw32-
- (the prefix may vary)
- * Alternatively you can compile TCC with just GCC from MinGW using
- > build-tcc.bat (from the win32 directory)
- Also MSVC can be used with the "VSTools Developer Command Prompt":
- > build-tcc.bat -c cl
- or with an existing tcc (needs to be in a different directory)
- > build-tcc.bat -c some-tcc-dir\tcc.exe
- Also you can copy/install everything into another directory:
- > build-tcc.bat -i <dir>
- Limitations:
- ------------
- - On the object file level, currently TCC supports only the ELF format,
- not COFF as used by MinGW and MSVC. It is not possible to exchange
- object files or libraries between TCC and these compilers.
- However libraries for TCC from objects by TCC can be made using
- tcc -ar lib.a files.o ,,,
- - No leading underscore is generated in the ELF symbols.
- Documentation and License:
- --------------------------
- TCC is distributed under the GNU Lesser General Public License. (See
- COPYING file or http://www.gnu.org/licenses/lgpl-2.1.html)
- TinyCC homepage is at:
- http://fabrice.bellard.free.fr/tcc/
- WinAPI Help and 3rd-party tools:
- --------------------------------
- The Windows API documentation (Win95) in a single .hlp file is
- available on the lcc-win32 site as "win32hlp.exe" or from other
- locations as "win32hlp_big.zip".
- A nice RAD tool to create windows resources (dialog boxes etc.) is
- "ResEd", available at the RadASM website.
- --- grischka
|