天天看點

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

1 準備軟體

  lastools源碼位址,提取碼:qld8;cmake下載下傳位址,提取碼:9bit。

2 使用cmake生成VS2015的工程

  cmake安裝過程略,cmake編譯源碼的方法,請自行百度學習,點選“configure”按鈕,本文configure的内容如下圖:

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)
cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  然後,依次點選“generator",“open project”,在VS community 2015中打開 LAStools解決方案,将"LASlib"工程設為啟動項,接下來開始生成解決方案,編譯器會提示很多以下錯誤:

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  對應代碼位置如下圖:

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  可知在第364行的“?"後缺少一個單引号,是以補上該單引号即可,如下圖:

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  接下來繼續編譯,即可通過,分别編譯debug和release版本。

3 擷取laslib靜态庫

  以上生成的laslib.lib位于“LAStools\LASlib\lib”目錄下。

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

4 程式執行個體

  使用LASlib庫打開laz格式資料,在visual studio中建立控制台程式test,右鍵選擇test->屬性->配置屬性->C/C++ ->正常->附加包含目錄,添加如下頭檔案:

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  這裡根據自己的實際路徑添加即可。這兩個檔案位于源碼中的LASlib和LASzip中。

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  依次點選 連結器-> 輸入->附加依賴項,添加lib檔案:

    E:\MyDocuments\code_programs\VS_C++\LAStools-lib\LASlib\lib\Debug\LASlib-d.lib

  這裡要注意,需要添加與屬性頁面中的配置項一緻的lib版本。完成以上操作後點選 确定 退出屬性頁面。

添加cpp檔案,輸入以下測試代碼:

#include <iostream>
// Laslib
#include "lasreader.hpp"
int main()
{
    // 點雲路徑
    std::string file_path("E:/MyDocuments/code_programs/VS_C++/LAStools/data/lake.laz");

    // 打開las檔案
    LASreadOpener lasreadopener;
    lasreadopener.set_file_name(file_path.c_str());
    LASreader* lasreader = lasreadopener.open();
    size_t point_count = lasreader->header.number_of_point_records;

    // 周遊點雲
    while (lasreader->read_point()) 
    {
        std::cout << lasreader->point.get_x() << "  "
        << lasreader->point.get_y() << "  "
        << lasreader->point.get_z() << std::endl;
    }

    // 關閉點雲流
    lasreader->close();
    delete lasreader;

    return 0;
}


           

  結果如下:

cmake 3.17 + VS Community 2015 + win10編譯LasTools源碼(LASlib庫)

  如果使用VS community 2019 進行編譯,則将VS 2015替換為VS 2019即可。

  補充:VS2019編譯的lib,VS2015 用不了,至于VS2015編譯的庫,VS2019能不能用,則沒有測試,盡量用目前版本編譯器編譯的lib吧。