我需要在MS DOS中编译程序。我有Borland编辑器,我可以使用 Alt + F9 编译它,但事情是它在后端做的事情。我想在MS DOS中编译它。我试着这个:
c:\tc\bin>tcc -o hello.exe hello.c
其中hello.c
是我的文件,hello.exe
我要生成的文件。它不起作用,我该怎么办?另请告诉我如何从MS DOS手动编译.cpp
文件。
答案 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);
}