[英]Cmd prompt windows compiling
對於我的WINAPI項目,我將Atom IDE與c編程一起使用,直到開始使用.rc
文件之前,我都可以從cmd提示符下編譯代碼。 但是現在在編譯程序之前我正在使用rc文件,因此需要在cmd提示符下運行這些命令。
gcc -c jake.c
gcc -o jake jake.o -mwindows
windres -o jakerc.o jakerc.rc
gcc -o jake jake.o jakerc.o -mwindows
一遍又一遍地鍵入它們,以查看我的程序每次是否都能正常工作是非常乏味的。 (也請不要告訴我使用DEV c ++或Visual Studio之類的IDE,因為我不像我喜歡原子一樣喜歡它們。)
所以我想出了這個解決方案。 我制作了一個名為compile.c
的額外文件,它看起來像這樣。
#include <stdio.h>
#include <stdlib.h>
int main() {
system("C:\\Users\\hashtag\\Desktop\\rawsock\\kokul gcc -c jake.c");
system("C:\\Users\\hashtag\\Desktop\\rawsock\\kokul gcc -o jake jake.o -mwindows");
system("C:\\Users\\hashtag\\Desktop\\rawsock\\kokul windres -o jakerc.o jakerc.rc");
system("C:\\Users\\hashtag\\Desktop\\rawsock\\kokul gcc -o jake jake.o jakerc.o -mwindows");
return 0;
}
當我編譯並運行該程序時,出現以下錯誤:
'C:\\Users\\hashtag\\Desktop\\rawsock\\kokul' is not recognized as an internal or external command,
operable program or batch file.
如何擺脫此錯誤,並且在運行compile.exe
時如何自動編譯文件?
只要kokul是目錄,命令行
C:\\Users\\hashtag\\Desktop\\rawsock\\kokul gcc -c jake.c
沒道理 您可以組合多個命令。 如果要更改到目錄kokul並啟動編譯,則可以使用
CD C:\\Users\\hashtag\\Desktop\\rawsock\\kokul & gcc -c jake.c
但是無論如何,編寫批處理文件要容易得多:
如我的評論中所述,我建議為此使用批處理文件,而不是編譯的C程序。
例:
@ECHO off
SET workingDirectory=%~dp0
SET fileName=%1
echo using %workingDirectory% as working directory
gcc -c %fileName%.c
gcc -o %fileName% %fileName%.o -mwindows
windres -o %fileName%rc.o %fileName%rc.rc
gcc -o %fileName% %fileName%.o %fileName%rc.o -mwindows
您可以使用nameofthebatchfile.bat jake
運行所需的命令
你可以用兩行來做
windres -o jakerc.o jakerc.rc
gcc -o jake jake.c jakerc.o -mwindows
將它們保存到文件“ mj.bat”,然后通過鍵入“ mj”運行表單命令提示符。
當項目增長到兩個或三個以上文件時,應使用makefile GCC並進行編譯,鏈接和構建C / C ++應用程序
還要檢查atom-shell-commands
或run-command
軟件包。 您可以直接運行此表單編輯器。
如果您使用的是命令行工具,則此任務似乎需要Makefile。 不但可以make
必要的操作自動化,而且還將嘗試從文件時間戳中找出實際需要執行的操作。 例如,如果您沒有更改C源文件,則無需重新編譯它。 隨着您的應用程序變得更大並且組件之間具有更復雜的依賴關系, make
或類似的有效性將大大提高。
您可以使用簡單的批處理文件來完成其中一些工作,但是理想情況下,當任何一個步驟遇到錯誤時,批處理文件都需要停止。 毫無疑問,要進行一個注定要失敗的漫長的構建過程,在不相關的輸出頁面中找到相關的錯誤消息可能很麻煩。 這是另一件事, make
只是做正確的。
使用其神秘的語法來掌握Makefile可能要花一些時間。 但是,從長遠來看,這項努力將獲得許多回報。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.