2

MS DOS でプログラムをコンパイルする必要があります。私は Borland Editor を持っています。 Alt+を使用してコンパイルできますF9が、それはバックエンドで行うことです。MS DOS でコンパイルしたい。私はこれを試しています:

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

hello.c私のファイル、私がhello.exe作成したいファイルです。うまくいきません。どうすればいいですか?.cppまた、MS DOS から手動でファイルをコンパイルする方法も教えてください。

4

4 に答える 4

3

私の記憶が正しければ、Borland/Turbo C コンパイラのコマンド ライン オプションは gcc オプションのようには見えませんでした。tcc /?コマンド ライン ヘルプを参照してください。

于 2011-09-08T05:01:45.670 に答える
2
Turbo C++ バージョン 3.00 Copyright (c) 1992 Borland International
構文は次のとおりです。TCC [ オプション ] ファイル [s] * = デフォルト。-x- = スイッチ x をオフにする
 -1 80186/286 命令 -2 80286 プロテクト モード命令。
 -Ax 拡張機能を無効にする -B アセンブリ経由でコンパイルする
 -C ネストされたコメントを許可 -Dxxx マクロを定義
 -Exxx 代替アセンブラー名 -G 高速化のために生成
 -Ixxx インクルード ファイル ディレクトリ -K デフォルトの文字は符号なし
 -Lxxx ライブラリ ディレクトリ -M リンク マップの生成
 -N スタック オーバーフローをチェックします -O ジャンプを最適化します
 -P C++ コンパイルを強制します -Qxxx メモリ使用量の制御
 -S アセンブリ出力を生成します -Txxx アセンブラ オプションを設定します
 -Uxxx マクロの未定義 -Vx 仮想テーブル コントロール
 -X autodep を抑制します。出力 -Yx オーバーレイ コントロール
 -Z レジスタのリロードを抑制 -a ワード アライメントを生成
 -b * 列挙型を整数として扱います -c コンパイルのみ
 -d 重複文字列をマージ -exxx 実行ファイル名
 -fxx 浮動小数点オプション -gN N 回の警告後に停止
 -iN 最大。識別子の長さ -jN N エラー後に停止
 -k 標準スタック フレーム -lx リンカ オプションを設定
 -mx メモリ モデルの設定 -nxxx 出力ファイル ディレクトリ
 -oxxx オブジェクト ファイル名 -p Pascal 呼び出し
 -r * 変数を登録します -u * extern にアンダースコアを付けます
 -v ソースレベルのデバッグ -wxxx 警告制御
 -y 行番号情報を生成します -zxxx セグメント名を設定します
C:\TC\BIN>

したがって、次のように入力する必要があると思います。

tcc hello.cC プログラムおよびtcc -P hello.cppC++ プログラム用。

于 2011-09-09T09:45:08.943 に答える
0

ファルケン教授の答えにさらに

tcc file.c<-- C でコンパイルされます

tcc file.cpp<-- cpp でコンパイルされます

tcc file.ext .ext が cpp 以外の場合、C でコンパイルされます --P が使用されない限り、cpp が使用されてコンパイルされます。

VM で TCC を実行していますが、ここからコピー/貼り付けできません。しかし、あなたのテストでは私の結果と同じ結果が得られるはずです。そうでない場合は、おそらく私が間違っている可能性がありますが、CPP ではなく C で機能するこのコードと、C ではなく CPP で機能するコードを指定して、自分でテストできます。その後、実験できます。拡張子を変更し、-P を使用するかどうか。

次のコードは C でのみ機能します

conly.c

(C++ の専門家は、次の例について教えてくれました。C では void* -> T* 変換が許可されているため、C++ ではなく C で機能します。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);
}
于 2015-10-06T10:35:22.047 に答える