㈠ tc 以匯編格式輸出編譯結果 怎麼辦
你dir sum.*看看什麼結果,另外tcc編譯的是目標文件,後綴.obj,不是exe文件
㈡ 為什麼我的TC2.0 在dos界面使用tcc 編譯文件出現Error test3.c 1: Unable to open include file 'stdio.h
還是用XP的吧,不然就算成了EXE文件,也可能不能運行,,
實在想在win7的話,,如果不涉及到圖形的話,可以用TCC。。又小又正常,,
㈢ 怎麼在命令行里把兩個文件編譯和鏈接起來書上說是tcc 1.c 2.c但不行
你是在linux下編譯不,如果是那應該是gcc,不是tcc。
㈣ 如何看待《自己動手寫編譯器,鏈接器》一書大量抄襲開源編譯器 TCC
對於編譯器來說,核心是定義的語言,從這個意義上講,SCC編譯器屬於原創內容當然就談上上抄襲,人家有這個版權聲明也算合理,不過似乎沒什麼用,因為源代碼可以公開下載,實事上就是開源了。
其實我們讀者更關心一本書對我們自身是否有用,聽朋友說現在編譯器開發工程師起薪20k以上,要真能學會這門技術對我來說還是很有誘惑力的,畢竟國內真正寫過完整編譯器,鏈接器的人還是鳳毛麟角,能掌握這門技術還是很吃香的。
㈤ 如何讀取tcc.exe編譯文件時的錯誤信息
我用C#寫的 首先你需要把turbo c的系統環境變數(path)設置一下
public string RunCmd(string command)
{
Process p = new Process();
//Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:
p.StartInfo.FileName = "cmd.exe"; //設定程序名
// p.StartInfo.Arguments = "/c " + command; //設定程式執行參數
p.StartInfo.UseShellExecute = false; //關閉Shell的使用
p.StartInfo.RedirectStandardInput = true; //重定向標准輸出
p.StartInfo.RedirectStandardOutput = true; //重定向標准輸出
p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出
p.StartInfo.CreateNoWindow = false; //設置不顯示窗口
p.Start(); //啟動
p.StandardInput.WriteLine("tcc " + command); //用tcc命令將文件進行編譯 ,command是文件路徑
p.StandardInput.WriteLine("exit");
cmdend();
return p.StandardOutput.ReadToEnd(); //從輸出流得到命令行結果
}
private void cmdend()
{
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.Start();
p.StandardInput.WriteLine("cmdend");//cmdend.bat 文件裡面內容 taskkill /f /im cmd.exe
}
㈥ 網貸TCCFC文件是哪個平台
沒聽說話哦,小平台,小心被騙哦,
㈦ 在c語言編譯中出錯求大俠指教使用TCC+uClibc中%f不能替換小數,而且算式中出現小數也總是出錯
代碼貼上
採納哦
㈧ c語言編譯tc2.0怎麼用
拷貝一些給你,一般編譯器要注意的就是include目錄和lib目錄,還有就是編譯器調用的tcc,tlink之類的要在路徑內。不過簡單的菜單還是學一下吧,學編程還是需要一些英語的。
⒈首先要確保名為turboc.CFG的文件與TCC.EXE位於同一
目錄下如同在C:\TC目錄下。turboc.CFG的全部內容是
-IC:\TC\INCLUDE
-LC:\TC\LIB
它的作用是告訴TCC.EXE,.h文件和.lib文件在哪裡。
⒉最簡單的情形——當只需要編譯連接一個C源文件
設含主函數main()的文件名為mfile.c(下同)
則用以下命令之一可使編譯、連接"一步到位":
① tcc -f87 mfile.c <回車>
② tcc mfile.c <回車>
③ tcc mfile <回車>
命令①的效果優於命令②③因為 -f87 啟動了協處理器
從而使最終得到的可執行文件mfile.exe代碼短,速度快
命令②③的效果是用軟體模擬協處理器的8087指令代碼
既長速度且慢。當然如果機器上沒有協處理器就只能采
用命令②或③了。若源文件的擴展名是c,則只須輸入文
件的主名,小數點和'c'一並省略,故命令②③效果相同
【注】如果C源文件的擴展名不是c,則又分兩種情況:
若無擴展名(例如:僅有主名mfile)則編譯連接命令應為
tcc -f87 mfile. <回車>
別忘了末尾那個小數點!
若有擴展名(例如:mfile.cpp)則編譯連接命令應為
tcc -f87 mfile.cpp <回車>
⒊較復雜的情形——數個C源文件編譯後連接為一個程序
設除了源文件mfile.c外,還有1.sub和2.fun兩個源文件
則此時"一步到位"的既編譯又連接的命令如下:
tcc [-f87] mfile[.c] 1.sub 2.fun <回車>
以上含方括弧[]的項表示可選擇項(下同)。該命令的效
果是順序編譯這些C源文件因而先後生成以下目標文件
mfile.obj,1.obj,2.obj 隨後連接並生成 mfile.exe
換言之以上命令的效果等價於下面所列命令序列的效果
tcc -c mfile[.c] <回車>
tcc -c 1.sub <回車>
tcc -c 2.fun <回車>
tcc [-f87] mfile.obj 1.obj 2.obj <回車>
應當指出:-f87 開關對於編譯不起作用,但在連接階段
將引導連接器TLINK.EXE與庫文件 C:\TC\LIB\FP87.LIB
連接而不是預設時的模擬庫文件 C:\TC\LIB\EMU.LIB。
⒋更復雜的情形——C主文件和匯編模塊連接為一個程序
設除源文件mfile.c外,還有匯編模塊sub.asm和fun.asm
此時"一步到位"的既編譯、匯編又連接的命令如下:
tcc [-f87] -B mfile[.c] sub.asm fun.asm <回車>
以上命令的效果等價於下面所列命令序列的效果:
tcc -c mfile[.c] <回車>
tasm -Mx sub[.asm] <回車>
tasm -Mx fun[.asm] <回車>
tcc [-f87] mfile.obj sub.obj fun.obj <回車>
⒌內存模式——Tiny,Small,Compact,Medium,Lagre,Huge
對應的開關是 -mt, -ms(預設), -mc, -mm, -ml, -mh
注意該開關對於編譯和對於連接都是有意義的。例如:
tcc -ml mfile[.c] <回車>
等價於這樣2條命令:
① tcc -ml -c mfile[.c] <回車>
② tcc -ml mfile.obj <回車>
命令①中的 -ml 告訴編譯器:代碼和數據都是"遠"的。
命令②中的 -ml 告訴連接器:連接MATHL.LIB和CL.LIB
⒍混合模式編程。例如:總體上是SMALL模式,但希望調用
按LARGE模式編寫的函數。這是可以做到的,關鍵在函數
聲明語句要強調代碼和數據的 far 屬性。 有這樣一個
具體例子。在MS-Fortran4.0的庫LLIBFR7.LIB中有個名
為CIXTOMX.OBJ的模塊,其中定義了4個"遠"函數。用C
語言編程調用這4個函數的關鍵是正確的函數原型聲明
extern void far fmsbintoieee(float far*,float far*);
extern void far dmsbintoieee(double far*,double far*);
extern void far fieeetomsbin(float far*,float far*);
extern void far dieeetomsbin(double far*,double far*);
這樣聲明後,即使用 -ms 進行編譯連接也能正常運行。
完整的程序見 D:\FOR4.0\ 目錄下的
MS.C,CIXTOMX.OBJ,IXTOMX.OBJ,MS.EXE,ML.C,ML.EXE。
⒎連接階段如何用TLINK.EXE完成。對於
tcc -f87 mfile.obj sub.obj fun.obj <回車>
在預設的SMALL模式下也可以用以下命令實現連接:
TLINK c0S mfile sub fun,mfile,nul,maths fp87 cs <回車>
同理對於
tcc -ml mfile.obj sub.obj fun.obj <回車>
則相當於執行下列命令:
TLINK c0L mfile sub fun,mfile,nul,maths emu cs <回車>
其中啟動代碼即C的初始化程序C0S.OBJ或C0L.OBJ可以
在C:\TC\LIB\下找到,它們的源程序在C:\TC\STARTUP\
目錄下——該目錄中的MAIN.C程序也值得關注。
㈨ 為何使用TCC編譯時沒有編譯錯誤的顯示
呵呵,winxp/win2k/win2003中cmd、command都是模擬DOS環境。
而Turbo C2.0出品時為DOS5.0左右,那時還沒win98呢。
至於cmd/command對DOS模擬得怎麼樣,那是另一回事了。
winxp/win2k/win2003原則上是不支持真正的DOS的。
要讓Turbo C2.0不出錯,最好是在真正的DOS下進行。
你可以用安裝虛擬機,如VMware等來安裝真實DOS來進行TC2的學習。(安裝win98並進入到DOS下,或安裝DOS 6.0/DOS 7.0)
㈩ tcc命令編譯文件名問題
DOS的限制,不能用長文件名
用VC++6.0就沒這個限制了
linux上的gcc也沒這個限制