文章目錄
- 一、安裝C、C++編譯環境需要的包
- 1. 選擇gcc-core、gcc-g++
- 2. 選擇gdb
- 3. 選擇mingw64下的gcc-core、gcc-g++
- 4. 選擇make
- 5. 選擇cmake
- 6. 確認更改
- 7. 查看包安裝狀態
- 二、C、C++ 項目編譯示例
- step1:解壓縮sed-4.9.tar.gz
- step2:執行./configure生成Makefile文件
- step3:執行make命令
- step4:執行make install命令
- step5:執行新生成的sed命令
本文將總結基于Cygwin
配置C、C++編譯環境需要安裝哪些包,并給出示例如何進行項目編譯。
Cygwin 介紹與安裝,請參考:Cygwin 介紹與安裝
一、安裝C、C++編譯環境需要的包
重新運行setup-x86_64.exe
程序,步驟與 Cygwin 介紹與安裝 基本一致,
重點選擇軟件包,在選擇軟件包界面,查看類別
1. 選擇gcc-core、gcc-g++
搜索gcc
,在Devel
分類下,分別找到gcc-core
、gcc-g++
,在新增
一欄,點擊跳過
,在下拉列表選擇需要安裝的版本;
2. 選擇gdb
搜索gdb
,在Devel
分類下,分別找到gdbe
,在新增
一欄,點擊跳過
,在下拉列表選擇需要安裝的版本;
3. 選擇mingw64下的gcc-core、gcc-g++
搜索mingw64
,在Devel
分類下,分別找到mingw64-i686-gcc-core
,mingw64-i686-gcc-g++
,mingw64-x86_64-gcc-core
,mingw64-x86_64-gcc-g++
在新增
一欄,點擊跳過
,在下拉列表選擇需要安裝的版本;
4. 選擇make
搜索make
,在Devel
分類下,分別找到make
在新增
一欄,點擊跳過
,在下拉列表選擇需要安裝的版本;
5. 選擇cmake
搜索cmake
,在Devel
分類下,分別找到cmake
在新增
一欄,點擊跳過
,在下拉列表選擇需要安裝的版本;
6. 確認更改
然后確認并完成后續安裝
7. 查看包安裝狀態
打開Cygwin Terminal
,輸入下面的命令
cygcheck -c gcc-core gcc-g++ gdb mingw64-i686-gcc-core mingw64-i686-gcc-g++ mingw64-x86_64-gcc-core mingw64-x86_64-gcc-g++ make cmake
二、C、C++ 項目編譯示例
這里就不以簡單的helloworld
為例了。
使用gnu
下的sed
項目為例
到 https://ftp.gnu.org/gnu/sed/ 下載sed
源碼
.tar.gz 和 .tar.xz 格式都行
.tar.gz 和 .tar.xz 只是使用的壓縮算法不一樣,xz 是一種非常高效的壓縮算法,壓縮比比 gzip 更高。因此.tar.xz 文件比.tar.gz 文件更小,但需要更長時間進行壓縮和解壓縮;.tar.gz 文件則具備更快的壓縮和解壓縮速度,但文件大小相對較大。
示例使用:https://ftp.gnu.org/gnu/sed/sed-4.9.tar.gz
說明:Cygwin 安裝時,默認是安裝了sed命令的,在 Cygwin安裝目錄的 bin目錄下,這里僅是為了演示如何使用Cygwin編譯C/C++項目
step1:解壓縮sed-4.9.tar.gz
打開Cygwin Terminal
,進入到下載的sed-4.9.tar.gz
所在的目錄,然后執行tar命令解壓縮;
$ tar -xzf sed-4.9.tar.gz
step2:執行./configure生成Makefile文件
$ ./configure
step3:執行make命令
$ make
step4:執行make install命令
執行完make命令后,已經在sed目錄下生成了sed.exe命令,繼續執行make install命令,將新生成的sed命令,添加到/usr/local/bin路徑,這樣就可以在Cygwin整個環境中使用這個命令了。
$ make install
step5:執行新生成的sed命令
$ sed --version
注意:
- 需要重啟
Cygwin64 Terminal
終端,新安裝的sed命令才生效; - 在執行sed命令時,優先使用
usr\local\bin\sed.exe
,而不是bin\sed.exe
;
另外需要注意的是,Cygwin編譯生成的.exe可執行程序,運行時依賴cygwin1.dll
等庫,為了驗證這點,這里將生成的sed.exe程序,復制一份到D:根目錄,然后在cmd命令行窗口執行sed --version
(注意不是在Cygwin Terminal
執行)
因此,如果想要使Cygwin編譯生成的.exe在脫離Cygwin Terminal
終端環境也可正常運行,需要系統能找到cygwin1.dll
位置,通常的做法是將Cygwin
安裝目錄下的bin
目錄的絕對路徑添加到系統的Path環境變量(因為Cygwin相關的dll都在這個bin目錄下)