[討論] 在 Windows 上的 C/C++ 議題

看板C_and_CPP作者 (Neisseria)時間9年前 (2016/04/26 11:38), 9年前編輯推噓1(1016)
留言17則, 6人參與, 最新討論串1/1
先說一下為什麼會對這個感興趣 如果是寫給自己的程式,不吃效能的,通常會找某個 script language 像是 Perl, Python, Ruby, Groovy, etc. 但是,有時候要寫一些程式給別人用,使用 script language 就不一定好 即使不用第三方函式庫,至少也要建立某個語言的環境 這時候,會找腦筋動到一些可建立靜態連結執行檔的編譯語言 當然,C/C++ 也可以做到這點,不過,相對比較不好寫 像小弟最近在學習 Go 和 Rust 看那一個比較適合做類似 script language 角色的 compiled language 另外,小弟主力平台非 Windows,平常寫程式是 Mac 或 GNU/Linux 輪流使用 Visual Studio 有自己編譯軟體的流程 但是 Visual Studio project 在其他平台上比較沒那麼流通 通常,小弟會在其他平台寫好程式後,移到 Windows 進行最後編譯的動作 如果可以用 make + Makefile 或類似的方案,會比較方便 然而,即使是 Go 和 Rust,或其他的語言,像 Haxe 有時候仍然會需要呼叫 C/C++ 函式庫 如果是在 Unix-like 系統,通常會用 apt、yum 或 Homebrew 等套件管理程式 在 Windows 下,相對比較不方便 最近發現了 MSYS2,似乎可以在某種程度上補足這個問題 小弟想說,有沒有一些教學,處理 Windows 上的 C/C++ 程式碼 像是如何編譯 static executable 和 static library 在 Windows 上面使用 MinGW toolchain 的方式等等 希望版上各位大大提供意見,感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.71.94.1 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1461641880.A.CDA.html

04/26 12:04, , 1F
不用Visual Studio嗎?
04/26 12:04, 1F
感謝提醒,我在內文中加入說明

04/26 12:32, , 2F
mingw就gcc那套搬過來用就好吧 makefile搞定編譯
04/26 12:32, 2F
因為不太清楚在 Windows 上是如何,所以上來問 如果 GCC 那套可以直接吃,那會省下不少工夫 ※ 編輯: Neisseria (203.71.94.1), 04/26/2016 13:53:25

04/26 14:07, , 3F
除非是用到各平台獨有的東西(X-Window)否則光是語言本身
04/26 14:07, 3F

04/26 14:07, , 4F
都是直接 compile 即可,MinGW 這點做得非常方便
04/26 14:07, 4F

04/26 14:08, , 5F
Dev C++ 也是做個漂亮介面而已,編譯還是交給 MinGW gcc
04/26 14:08, 5F

04/26 14:09, , 6F
我前面分享的程式碼,發文前都會在 Linux 和 MinGW 試過
04/26 14:09, 6F

04/26 14:18, , 7F
安裝 MinGW toolchain 和自製 library 我是有一些筆記
04/26 14:18, 7F

04/26 14:19, , 8F
但是否適用你剛貼的 MSYS2 我可能要先重頭試一遍...
04/26 14:19, 8F

04/26 15:51, , 9F
github.com/yanlinlin82/msys-cn/tree/master/wiki
04/26 15:51, 9F

04/26 23:33, , 10F
Visual Studio 裡面有微軟自己的 nmake, 它的 makefile
04/26 23:33, 10F

04/26 23:34, , 11F
的寫法和 gnu make 的 makefile 差異不大, 所以也是可以
04/26 23:34, 11F

04/26 23:34, , 12F
直接使用; 只是 VC 的編譯器 cl 的參數和 gcc/g++ 差太多了
04/26 23:34, 12F

04/26 23:35, , 13F
這部份麻煩很多就是
04/26 23:35, 13F

04/26 23:35, , 14F
我自己現在在用 Visual Studio 都已經是寫 makefile 在跑
04/26 23:35, 14F

04/26 23:36, , 15F
IDE 本身只有在需要單步除錯時才會藉下斷點叫出來
04/26 23:36, 15F

04/26 23:36, , 16F
也就是直接跳過方案專案什麼的設定直接單步除錯
04/26 23:36, 16F

04/27 00:14, , 17F
其實有些問題也是可以靠 CMake 來解決
04/27 00:14, 17F
文章代碼(AID): #1N7kAOpQ (C_and_CPP)