如何在MS-DOS下手工编写C语言程序

smdncfj3  于 2023-05-28  发布在  其他
关注(0)|答案(4)|浏览(145)

我需要在MS-DOS下编译一个程序。我有Borland编辑器,我可以使用Alt + F9编译程序,但它在后端做什么呢?我想在MS-DOS下编译它。我在试这个:

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

其中hello.c是我的文件,hello.exe是我想要生成的文件。不管用我该怎么办?如何从MS-DOS手动编译.cpp文件?

lf5gs5x2

lf5gs5x21#

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

1wnzp6jl

1wnzp6jl2#

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

所以,我认为你应该输入:
tcc hello.c用于C程序,tcc -P hello.cpp用于C++程序。

9lowa7mx

9lowa7mx3#

我认为这些事情必须起作用:

c:\tc\bin\tcc -c File.c     \\ To generate the object file
c:\tc\bin\tcc -o File.obj   \\ To generate the EXE file from the object file. And please use .obj, not .o
c:\tc\bin\ tcc -run File.c  \\ To generate the EXE file without the .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了解不多。如果我找到了,我会告诉你的!
看看这些 * Tiny C Compiler Reference Documentation *。这是我在Google上找到的。谷歌会让你更强大,所以当你不知道的时候,继续谷歌。

kxkpmulp

kxkpmulp4#

关于法尔肯教授的回答
tcc file.c <--将在C中编译
tcc file.cpp <--将在cpp中编译
tcc file.ext,其中.ext是cpp以外的任何内容,将在C中编译除非使用--P,然后使用cpp来编译它,在这种情况下使用.cpp,即使扩展名是.c
我正在VM中运行TCC,无法从此处复制/粘贴。但是你的测试应该和我的测试结果一样,如果不是,那么也许我错了,但是你可以自己测试一下,给定这个代码在C中工作而不是CPP,以及在CPP中工作而不是C。然后,您可以尝试更改扩展名,并使用-P或不使用。

以下代码仅适用于C语言

conly.c
(一位CMaven告诉我,下面的例子在C中工作,而不是C,因为C允许void* -> 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);
}

相关问题