天天看點

利用 cmake 工具生成 Visual Studio 工程檔案

對于習慣了 Visual Studio 強大的管理項目、編碼和調試功能的讀者來說,在 Linux 下使用 gcc/g++ 編譯、使用 gdb 調試是一件何其痛苦的事情,對于大多數的開源 C/C++ 項目,如果我們不在意 Windows 和 Linux 在一些底層 API 接口上的使用差别,想熟悉該項目的執行脈絡和原理,在 Windows 上使用 Visual Studio 調試該項目也未嘗不可。凡是可以使用 CMake 工具編譯的 Linux 程式(即提供了 CMakeLists.txt 檔案),我們同樣也可以利用 CMake 工具生成 Windows 上的 Visual Studio 工程檔案。

這裡我們以著名的開源網絡庫 libuv 為例。

從 libuv 的官方位址提供的下載下傳連結:https://dist.libuv.org/dist/ 下載下傳最新的 libuv 的源碼得到檔案 libuv-v1.31.0.tar.gz(筆者寫作此書時,libuv 最新版本是 1.31.0),解壓該檔案。作者的機器上我将代碼解壓至 F:\mycode\libuv-v1.31.0\ ,解壓後的目錄中确實存在一個 CMakeLists.txt 檔案,如下圖所示:

利用 cmake 工具生成 Visual Studio 工程檔案

啟動 Windows 上的 CMake 圖形化工具(cmake-gui),按下圖進行設定:

利用 cmake 工具生成 Visual Studio 工程檔案

設定完成之後,點選界面上的Configure 按鈕,會提示 vsprojects 目錄不存在,提示是否建立,我們點選 Yes 進行建立。

利用 cmake 工具生成 Visual Studio 工程檔案

如果您的機器上安裝了多個版本的Visual Studio,接下來會彈窗對話框讓我們選擇要生成的工程檔案對應的 Visual Studio 版本号。讀者可以根據自己的實際情況按需選擇。我這裡選擇 Visual Studio 2019。

利用 cmake 工具生成 Visual Studio 工程檔案
利用 cmake 工具生成 Visual Studio 工程檔案

點選 Finish 按鈕後開始啟動 CMake 的檢測和配置工作。等待一會兒,CMake 底部的輸出框中提示 “Configuring Done” 表示配置工作已經完成。

利用 cmake 工具生成 Visual Studio 工程檔案

接下來點選 Generate 按鈕即可生成所選版本的 Visual Studio 工程檔案,生成的檔案位于 vsprojects 目錄。

利用 cmake 工具生成 Visual Studio 工程檔案

我們可以在界面上點選按鈕 Open Project 按鈕直接打開工程檔案,也可以找到對應目錄下的 libuv.sln 打開。

打開後如下圖所示:

利用 cmake 工具生成 Visual Studio 工程檔案

接下來,我們就可以使用 Visual Studio 愉快地進行編譯和調試了。

讓我們再深入聊一下上述過程:在點選 Configure 按鈕之後,和在 Linux 下執行 cmake 指令一樣,CMake 工具也是在檢測所在的系統環境是否比對 CMakeLists.txt 中定義的各種環境,本質上是生成了一份可以在 Windows 上編譯和運作的代碼(也就是說該源碼支援在 Windows 上運作) 。是以,對于很多雖然提供了 CMakeLists.txt 檔案但并不支援在 Windows 上運作的的 Linux 工程,雖然利用上述方法也能最終生成 Visual Studio 工程檔案,但是這些檔案并不能在 Windows 上直接無錯編譯和調試。

由于不同的 CMake 版本支援的 CMakeLists.txt 中的文法可能略有細微差别,有些 CMakeLists.txt 檔案在使用上述方法 configure 時可能會産生一些錯誤,需要讀者做些修改才能通過。