VScode 進化非常神速,就 C++ 而言搭配 CMake 延伸模組的支援,以往那些麻煩的設定可以拋諸腦後了。
首先到 CMake 下載並安裝最新版的 CMake。
再去抓最新版的 MinGW ,我抓的是 x86_64-posix-seh,解壓到 C:\x86_64-8.1.0-release-posix-seh-rt_v6-rev0,並將 C:\x86_64-8.1.0-release-posix-seh-rt_v6-rev0\mingw64\bin 設定到環境變數 PATH,這點是必須的,因 VScode 會去找編譯器。
一切就緒後就可以去抓最新版的 VScode 來安裝,安裝過程中出現下圖,就全選吧
並如下圖安裝必要的延伸模組
接下來就測試一下成果,建一個空資料,在其中用滑鼠右鍵點選出選單,選擇 以 Code 開啟
在 VScode 中,按 Ctrl-Shift-P 叫出命令選擇區下命令,如下圖選擇 CMake 快速入門
接下來會出現要求編譯器選項,因我已經 Scan 過了,就直接選用,VScode 會到環境變數 PATH 設定的路徑中去 Scan
接下來是專案名稱
詢問是要製作 程式庫 還是 執行主程式
然後就幫你製作了兩個檔案和一個 CMake 的 build 資料夾
看看最下方會有一堆編譯、除錯、組態... 等等操作可用,自己試試
通過測試後就來做些正事,到這裡抓 CxxlMan2 程式庫來編譯看看,抓最新版和參考手冊,參考手冊的首頁有編譯說明先看看,將抓下來的 CxxlMan2 壓縮檔解壓後,進到 Src 資料夾,用滑鼠右鍵點選出選單,選擇 以 Code 開啟
開啟後注意右下方會出現會出現下圖
因 CxxlMan2 已經編寫好了 CMake 的 CMakeLists.txt,所以配置過程要比剛剛的練習簡單多了,等配置完成後,會如下圖多了一個 CMake 的 build 的資料夾
進到 build 資料夾,開啟 CMakeCache.txt 做 CMake 的設定,依 參考手冊 的說明有兩個地方要設定
設定好存檔後,看看最下方
- (1) 用來選擇要編譯成 Debug 版本,還是 Release 版本
- (3) 選擇要編譯哪個專案,其實可直接選 Install 這個專案,因相依性的機制,會先全部編譯完成再安裝。
- (2) 按下就會進行編譯
Debug 版本和 Release 版本都須做一次,完成後就會被安裝到 C:\CxxlMan2,記得把 C:\CxxlMan2\lib 加入環境變數 PATH 中。
接下來寫個程式檢驗一下 CxxlMan2 程式庫安裝有沒有問題,回到剛開始的測試程式,打開 build\CMakeCache.txt 先做 CMake 的以下設定
接著打開 CMakeLists.txt 修改如下
cmake_minimum_required(VERSION 3.0.0)
project(FirstTest VERSION 0.1.0)
include(CTest)
enable_testing()
# 指定要加入的 CxxlMan2 程式庫
SET(LIBSRC_LIST optimized -lcxxlplugin optimized -lcxxlcontainer
optimized -lcxxlcommon optimized -lcxxlobject)
SET(LIBSRC_D_LIST debug -lcxxlplugin_d debug -lcxxlcontainer_d
debug -lcxxlcommon_d debug -lcxxlobject_d)
add_executable(FirstTest main.cpp)
# 加入 CxxlMan2 程式庫
target_link_libraries( FirstTest ${LIBSRC_D_LIST}
${LIBSRC_LIST} )
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
接下來打開 main.cpp 修改如下
#include <iostream>
#include <UTF8STRING.HPP>
int main(int argc, char** argv)
{
if(argc < 3)
{
std::cout << "須提供兩個命令參數" << std::endl;
return -1;
}
CxxlMan2::UTF8_String arg1 = argv[1];
CxxlMan2::UTF8_String arg2 = argv[2];
CxxlMan2::UTF8_String str = arg1 + arg2;
std::cout << str.c_str() << std::endl;
return 0;
}
在最下方的工作列雖然有提供內定除錯操作,但我不知道要怎麼去設定程式執行時的命令參數,只好又回到傳統方法去設定 launch.json,打開最上方選單的 執行->新增組態
選第一項後再選預設組態會自動幫忙建好 launch.json 樣版,再做一些修改
最下方會多了一項操作
點選它並執行就可以了
沒有留言:
張貼留言