簡體   English   中英

Cmd提示窗口編譯

[英]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-commandsrun-command軟件包。 您可以直接運行此表單編輯器。

如果您使用的是命令行工具,則此任務似乎需要Makefile。 不但可以make必要的操作自動化,而且還將嘗試從文件時間戳中找出實際需要執行的操作。 例如,如果您沒有更改C源文件,則無需重新編譯它。 隨着您的應用程序變得更大並且組件之間具有更復雜的依賴關系, make或類似的有效性將大大提高。

您可以使用簡單的批處理文件來完成其中一些工作,但是理想情況下,當任何一個步驟遇到錯誤時,批處理文件都需要停止。 毫無疑問,要進行一個注定要失敗的漫長的構建過程,在不相關的輸出頁面中找到相關的錯誤消息可能很麻煩。 這是另一件事, make只是做正確的。

使用其神秘的語法來掌握Makefile可能要花一些時間。 但是,從長遠來看,這項努力將獲得許多回報。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM