如何在MS DOS而不是Borland上手动编译c语言程序

时间:2011-09-08 04:57:23

标签: c turbo-c

我需要在MS DOS中编译程序。我有Borland编辑器,我可以使用 Alt + F9 编译它,但事情是它在后端做的事情。我想在MS DOS中编译它。我试着这个:

c:\tc\bin>tcc -o hello.exe hello.c

其中hello.c是我的文件,hello.exe我要生成的文件。它不起作用,我该怎么办?另请告诉我如何从MS DOS手动编译.cpp文件。

4 个答案:

答案 0 :(得分:3)

如果我没记错的话,Borland / Turbo C编译器的命令行选项看起来不像gcc选项。您应该尝试tcc /?获取命令行帮助。

答案 1 :(得分:2)

Turbo C++ Version 3.00 Copyright (c) 1992 Borland International
Syntax is: TCC [ options ] file[s]     * = default; -x- = turn switch x off
 -1      80186/286 Instructions    -2      80286 Protected Mode Inst.
 -Ax     Disable extensions        -B      Compile via assembly
 -C      Allow nested comments     -Dxxx   Define macro
 -Exxx   Alternate Assembler name  -G      Generate for speed
 -Ixxx   Include files directory   -K      Default char is unsigned
 -Lxxx   Libraries directory       -M      Generate link map
 -N      Check stack overflow      -O      Optimize jumps
 -P      Force C++ compile         -Qxxx   Memory usage control
 -S      Produce assembly output   -Txxx   Set assembler option
 -Uxxx   Undefine macro            -Vx     Virtual table control
 -X      Suppress autodep. output  -Yx     Overlay control
 -Z      Suppress register reloads -a      Generate word alignment
 -b    * Treat enums as integers   -c      Compile only
 -d      Merge duplicate strings   -exxx   Executable file name
 -fxx    Floating point options    -gN     Stop after N warnings
 -iN     Max. identifier length    -jN     Stop after N errors
 -k      Standard stack frame      -lx     Set linker option
 -mx     Set Memory Model          -nxxx   Output file directory
 -oxxx   Object file name          -p      Pascal calls
 -r    * Register variables        -u    * Underscores on externs
 -v      Source level debugging    -wxxx   Warning control
 -y      Produce line number info  -zxxx   Set segment names
C:\TC\BIN>

所以,我认为你应该输入:

tcc hello.c用于C程序,tcc -P hello.cpp用于C ++程序。

答案 2 :(得分:0)

我相信这件事必须有效

c:\tc\bin\tcc -c File.c   \\  To generate objective file
c:\tc\bin\tcc -o File.obj  \\ To generate exe from obj and please use .obj and not .o 
c:\tc\bin\ tcc -run File.c    \\ to generate exe file without .obj file
 c:\tc\bin\File.exe            \\ to run the exe file

我不知道为什么

tcc -o good.exe File.obj \\not working, the error is good.exe file not found

我认为我们不能在tcc命令行提示符中给.exe文件命名。但它可能在gcc中。我不太了解TCC。如果我发现它我会告诉你的!

看看这些http://bellard.org/tcc/tcc-doc.html#SEC3。这是我在谷歌上发现的。并且谷歌搜索让你更强大,所以当你不知道时继续谷歌搜索。

由于

答案 3 :(得分:0)

进一步对法尔肯教授的回答

tcc file.c< - 将在C

中编译

tcc file.cpp< - 将在cpp中编译

tcc file.ext其中.ext是除cpp以外的任何内容,将在C中编译除非使用了-P然后使用cpp进行编译,在这种情况下使用.cpp,即使扩展名是.c < / p>

我在VM中运行TCC,无法从此处复制/粘贴。但是你的测试应该找到与我相同的结果,如果不是,那么也许我错了,但是你可以自己测试,因为这个代码在C而不是CPP中工作,代码在CPP而不是C中工作。然后你可以进行实验更改扩展名,并使用-P。

以下代码仅适用于C

conly.c

(一位C ++专家告诉我以下示例,在C而不是C ++中工作,因为C允许void * - &gt; T *转换.C ++没有)

#include <stdio.h>
#include <stdlib.h>
void main() {int *x=malloc(4);}

以下代码仅适用于C ++

cpponly.cpp

#include <stdio.h>
void main() {
 int a=9;
 int& b=a;
 printf("b=%d",b);
}