国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手教你在windows下源碼編譯Open3D

這篇具有很好參考價(jià)值的文章主要介紹了手把手教你在windows下源碼編譯Open3D。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

首先不建議windows下源碼編譯,需要用C++的可以直接下載官網(wǎng)編譯好的版本。熟悉vcpkg的,可以把open3d加到vcpkg使用,參考該博客。

1.編譯環(huán)境

  • cmake >=3.20
  • python >=3.6.0
  • visual studio >=2017

2.編譯步驟

  • Github下載open3d源碼
  • 打開源碼,新建build文件夾
mkdir build
cd build

cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="<open3d_install_directory>" ..

填寫你的VS版本,例vs2022(17),open3d_install_directory使用當(dāng)前路徑".",最終命令為:

cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX="." ..
  • 編譯,會(huì)出現(xiàn)一系列錯(cuò)誤,按照提示解決。重復(fù)編譯過程直至沒有Error提示
cmake --build . --config Release --target ALL_BUILD
  • 安裝,生成include和lib
cmake --build . --config Release --target INSTALL

3.編譯中的bug

3.1 下載超時(shí)問題,ispc、pybind11、open3d_sphinx_theme等

報(bào)錯(cuò)信息類似:

 error : downloading 'https://github.com/xxx/'
  • 開vpn手動(dòng)點(diǎn)擊報(bào)錯(cuò)鏈接中的url用瀏覽器下載,然后復(fù)制粘貼到"Open3D-master\3rdparty_downloads"相應(yīng)的庫文件下。
  • 替換相應(yīng)文件下的未下載完成的文件,例如:下載pybind11-2.6.2.tar.gz改名替換為Open3D-master\3rdparty_downloads\pybind11\v2.6.2.tar.gz。
  • one-20190522.tar.gz 是parallelstl庫下的文件 -> 20190522.tar.gz
  • 建議先把boringssl、curl這兩個(gè)庫替換好,curl是下載用的庫。下好后可能以上的超時(shí)問題會(huì)消失一些,博主本人是一個(gè)個(gè)替換的,最后才根據(jù)cmake報(bào)錯(cuò)裝的curl

3.2 boringssl

這個(gè)庫的下載路徑不存在,所以需要去GitHub下載boringssl-master.zip

  • 解壓后用7z壓成.tar
  • 把.tar壓成gzip
  • 把boringssl-master.tar.gz改名替換boringssl_edfe413_win_amd64.tar.gz

3.3 DirectXMath、DirectXHeaders

fatal: unable to access 'https://github.com/microsoft/DirectXMath.git/': Failed to connect to github.com port 443 aft
  er 21085 ms: Timed out

博主的 curl 下載并編譯好后,會(huì)自動(dòng)下載裝好。上述方法不行試試,github下載了DirectX-Headers-mains和DirectXMath-main,并解壓到build\uvatlas\src\ext_directxheaders和build\uvatlas\src\ext_directxmath

4.驗(yàn)證編譯是否成功

隨便打開build\bin\examples\Release\下的例程,例如:Draw.exe
手把手教你在windows下源碼編譯Open3D

5.新建項(xiàng)目中使用

PS:3d庫都是縫合怪

新建一個(gè)C++項(xiàng)目

  • 包含Build下的include、include\open3d\3rdparty
  • 打開build/open3d.sln 找到 example/cpp中的任意一個(gè)項(xiàng)目
    • 庫目錄添加build\bin\Release路徑,然后照抄范例中的附加目錄
    • 照抄范例的預(yù)處理器,不然會(huì)報(bào)錯(cuò)fmn重復(fù)定義(LNK2005) 等錯(cuò)誤
  • 項(xiàng)目需Release-x64的項(xiàng)目,Debug需要重編譯
  • 項(xiàng)目->屬性->c/c++代碼生成 更改成 “多線程(/MT)”
    手把手教你在windows下源碼編譯Open3D

插入如下代碼:

#include <iostream>
#include "open3d/Open3D.h"

using namespace open3d;

int main(){
	// 從github上下載pcd文件,也可以自己找一個(gè)pcd文件
    auto demo_crop_data = data::DemoCropPointCloud();
    auto cloud_ptr = std::make_shared<geometry::PointCloud>();
    if (io::ReadPointCloud(demo_crop_data.GetPointCloudPath(),*cloud_ptr)) {
        utility::LogInfo("Successfully read {}",demo_crop_data.GetPointCloudPath());
    } else {
        utility::LogWarning("Failed to read {}",demo_crop_data.GetPointCloudPath());
        return 1;
    }
    cloud_ptr->NormalizeNormals();
    visualization::DrawGeometries({ cloud_ptr },"PointCloud",1600,900);
}

手把手教你在windows下源碼編譯Open3D

6.靜態(tài)庫整合

上面鏈接的靜態(tài)庫太多,故使用visual studio工具lib.exe(官方文檔)進(jìn)行合并,簡(jiǎn)化調(diào)用流程。由于lib.exe的合并的函數(shù)限制,把上面的的靜態(tài)鏈接庫按照體積分兩份。

手把手教你在windows下源碼編譯Open3D

6.1 Lib.exe簡(jiǎn)單使用

輸入cmd命令lib.exe /out:xmv1.lib Open3D.lib assimp-vc143-mt.lib 等

可以用python處理之前的鏈接路徑,最后得到所有鏈接路徑(絕對(duì)路徑)。還沒看懂的可以去看看這篇博客。

最后多個(gè)靜態(tài)鏈接合并成xmv1.lib和xmv.lib

6.2 簡(jiǎn)化后的調(diào)用流程

  • 添加頭文件,包含build下的include、include\open3d\3rdparty

    D:\3rdparty\Open3D-master\build\include
    D:\3rdparty\Open3D-master\build\include\open3d\3rdparty
    
  • 引用鏈接庫

    #pragma comment(lib, "xmv.lib")
    #pragma comment(lib, "xmv1.lib")
    
  • 添加預(yù)處理器

    %(PreprocessorDefinitions)
    WIN32
    _WINDOWS
    _CRT_SECURE_NO_WARNINGS
    NDEBUG
    OPEN3D_CXX_STANDARD="14"
    OPEN3D_CXX_COMPILER_ID="MSVC"
    OPEN3D_CXX_COMPILER_VERSION="19.34.31933.0"
    OPEN3D_CUDA_COMPILER_ID=""
    OPEN3D_CUDA_COMPILER_VERSION=""
    ZMQ_STATIC
    BUILD_ISPC_MODULE
    BUILD_GUI
    BUILD_WEBRTC
    WITH_IPPICV
    _GLIBCXX_USE_CXX11_ABI=0
    WINDOWS
    _CRT_SECURE_NO_DEPRECATE
    _CRT_NONSTDC_NO_DEPRECATE
    _SCL_SECURE_NO_WARNINGS
    NOMINMAX
    _USE_MATH_DEFINES
    _ENABLE_EXTENDED_ALIGNED_STORAGE
    __TBB_LIB_NAME=tbb_static
    OPEN3D_STATIC
    GLEW_STATIC
    FMT_HEADER_ONLY=0
    FMT_USE_WINDOWS_H=0
    FMT_STRING_ALIAS=1
    TINYGLTF_IMPLEMENTATION
    STB_IMAGE_IMPLEMENTATION
    STB_IMAGE_WRITE_IMPLEMENTATION
    TINYOBJLOADER_IMPLEMENTATION
    MKL_ILP64
    CMAKE_INTDIR="Release"
    
  • 調(diào)用代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-446508.html

    
    #include <iostream>
    #pragma comment(lib, "xmv.lib")
    #pragma comment(lib, "xmv1.lib")
    
    #include "open3d/Open3D.h"
    
    using namespace open3d;
    
    int main()
    {
        auto demo_crop_data = data::DemoCropPointCloud();
        auto cloud_ptr = std::make_shared<geometry::PointCloud>();
        if (io::ReadPointCloud(demo_crop_data.GetPointCloudPath(),*cloud_ptr)) {
            utility::LogInfo("Successfully read {}",demo_crop_data.GetPointCloudPath());
        } else {
            utility::LogWarning("Failed to read {}",demo_crop_data.GetPointCloudPath());
            return 1;
        }
    
        auto redWoodRGBD = data::SampleRedwoodRGBDImages();
        auto image_ptr = std::make_shared<geometry::Image>();
        if (io::ReadImage(redWoodRGBD.GetColorPaths()[0],*image_ptr)) {
            utility::LogInfo("Successfully read {}",redWoodRGBD.GetColorPaths()[0]);
        } else {
            utility::LogWarning("Failed to read {}",redWoodRGBD.GetColorPaths()[0]);
            return 1;
        }
    }
    

到了這里,關(guān)于手把手教你在windows下源碼編譯Open3D的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【運(yùn)維】手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    【運(yùn)維】手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    目錄 1什么是Minio 2安裝Docker 3Docker搭建Minio 4.創(chuàng)建Minio容器并運(yùn)行 5.進(jìn)行訪問 6安裝可能出現(xiàn)的問題 ????????MinIO是一個(gè)基于開源的對(duì)象存儲(chǔ)服務(wù)器,MinIO的設(shè)計(jì)目標(biāo)是提供高性能、高可用性和高可靠性的對(duì)象存儲(chǔ)服務(wù)。MinIO可以作為一個(gè)獨(dú)立的對(duì)象存儲(chǔ)服務(wù),也可以在Kuber

    2024年02月06日
    瀏覽(36)
  • 【Docker】手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    【Docker】手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    目錄 1什么是Minio 2安裝Docker 3Docker搭建Minio 4.創(chuàng)建Minio容器并運(yùn)行 5.進(jìn)行訪問 6安裝可能出現(xiàn)的問題 ????????MinIO是一個(gè)基于開源的對(duì)象存儲(chǔ)服務(wù)器,MinIO的設(shè)計(jì)目標(biāo)是提供高性能、高可用性和高可靠性的對(duì)象存儲(chǔ)服務(wù)。MinIO可以作為一個(gè)獨(dú)立的對(duì)象存儲(chǔ)服務(wù),也可以在Kuber

    2024年01月19日
    瀏覽(34)
  • 手把手教你在Linux/Windows系統(tǒng)使用Nginx部署多個(gè)前端項(xiàng)目【詳細(xì)操作】

    手把手教你在Linux/Windows系統(tǒng)使用Nginx部署多個(gè)前端項(xiàng)目【詳細(xì)操作】

    ??????? 需求:項(xiàng)目上線需要將前端的前臺(tái)和后臺(tái)部署在服務(wù)器上提供用戶進(jìn)行使用,部署在不同的服務(wù)器直接在服務(wù)器安裝nginx即可。但是在內(nèi)網(wǎng)安裝還是有點(diǎn)麻煩,因?yàn)樾枰?lián)網(wǎng),如果是內(nèi)網(wǎng)可以參考Linux安裝Nginx并部署前端項(xiàng)目【內(nèi)/外網(wǎng)-保姆級(jí)教程】_MXin5的博客-CSDN博

    2024年02月14日
    瀏覽(29)
  • 【運(yùn)維】手把手教你在Linux/Windows系統(tǒng)使用Nginx部署多個(gè)前端項(xiàng)目【詳細(xì)操作】

    【運(yùn)維】手把手教你在Linux/Windows系統(tǒng)使用Nginx部署多個(gè)前端項(xiàng)目【詳細(xì)操作】

    ??????? 需求:項(xiàng)目上線需要將前端的前臺(tái)和后臺(tái)部署在服務(wù)器上提供用戶進(jìn)行使用,部署在不同的服務(wù)器直接在服務(wù)器安裝nginx即可。但是在內(nèi)網(wǎng)安裝還是有點(diǎn)麻煩,因?yàn)樾枰?lián)網(wǎng),如果是內(nèi)網(wǎng)可以參考Linux安裝Nginx并部署前端項(xiàng)目【內(nèi)/外網(wǎng)-保姆級(jí)教程】_MXin5的博客-CSDN博

    2024年02月08日
    瀏覽(30)
  • 【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x進(jìn)行ONNX和TensorRT的部署(Python篇)

    【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x進(jìn)行ONNX和TensorRT的部署(Python篇)

    2023.9.8更新 C++ SDK篇已經(jīng)發(fā)布,點(diǎn)擊這里傳送到文章 MMDeploy 提供了一系列工具,幫助我們更輕松的將 OpenMMLab 下的算法部署到各種設(shè)備與平臺(tái)上。 MMDeploy 定義的模型部署流程,這里直接使用了官方文檔的內(nèi)容,如下圖所示:? 1)模型轉(zhuǎn)換(Model Converter) 模型轉(zhuǎn)換的主要功能是

    2024年01月16日
    瀏覽(27)
  • 【實(shí)戰(zhàn)】手把手教你在 vscode 中寫 markdown

    【實(shí)戰(zhàn)】手把手教你在 vscode 中寫 markdown

    markdown 語法、markdown 插件咱先放放,先說最頭疼的,圖片問題 相對(duì)于 HBuilder 自帶 markdown 圖片粘貼功能來說,vscode顯得不那么友好,若是不裝插件粘貼截圖就只能手動(dòng)進(jìn)行如下操作: 截取圖片 將圖片存在特定位置 在markdown文件中通過路徑引入圖片 預(yù)覽 最終我找到了 Paste I

    2024年02月13日
    瀏覽(28)
  • 手把手教你在 CentOS 7 下升級(jí) OpenSSL

    手把手教你在 CentOS 7 下升級(jí) OpenSSL

    ??這篇文章記錄著如何在 CentOS 7 上升級(jí) OpenSSL。會(huì)逐步介紹所需步驟,包括備份,下載和安裝,以及配置等。 OpenSSL 是用于保護(hù)數(shù)據(jù)安全的重要工具。它能提供加密,解密等多項(xiàng)功能。然而,隨著技術(shù)的發(fā)展和新的安全漏洞的出現(xiàn),使用最新版本的 OpenSSL 成為了重要的需求

    2024年02月16日
    瀏覽(26)
  • 手把手教你在ARM板上寫一個(gè)驅(qū)動(dòng)程序!

    手把手教你在ARM板上寫一個(gè)驅(qū)動(dòng)程序!

    摘要:搞嵌入式有兩個(gè)方向,一個(gè)是嵌入式軟件開發(fā)(MCU方向),另一個(gè)是嵌入式軟件開發(fā)(Linux方向)。其中MCU方向基本是裸機(jī)開發(fā)和RTOS開發(fā)。而Linux開發(fā)方向又分為驅(qū)動(dòng)開發(fā)和應(yīng)用開發(fā)。其中應(yīng)用開發(fā)相比于驅(qū)動(dòng)開發(fā)來說簡(jiǎn)單一些,因?yàn)楦泸?qū)動(dòng)你要和Linux內(nèi)核打交道。而我們普

    2024年02月01日
    瀏覽(32)
  • 手把手教你在Docker中安裝Nginx(圖文超詳細(xì))

    手把手教你在Docker中安裝Nginx(圖文超詳細(xì))

    本文介紹如何在 Windows Docker Desktop 平臺(tái)安裝 Nginx 容器(Linux 平臺(tái)同樣適用),并詳細(xì)講解如何配置 Nginx ,實(shí)現(xiàn) HTTP 請(qǐng)求在后端服務(wù)器集群間的負(fù)載均衡。 訪問 dockerhub 查找所需的鏡像版本: 這里我選擇 1.24.0 版,執(zhí)行如下命令: 命令執(zhí)行結(jié)果: 隨后,我們第一次運(yùn)行鏡像,

    2024年03月16日
    瀏覽(30)
  • 【最新】手把手教你在VMware中安裝Ubuntu虛擬機(jī)

    【最新】手把手教你在VMware中安裝Ubuntu虛擬機(jī)

    前言 前段時(shí)間卸載了Ubuntu雙系統(tǒng),但是發(fā)現(xiàn)還是需要使用Ubuntu,遂決定在虛擬機(jī)中裝一個(gè)Ubuntu系統(tǒng)。 已經(jīng)裝有VMware的可以忽略此步。 (1)點(diǎn)擊VMware官網(wǎng)下載VMware。 (2)使用Windows系統(tǒng)的點(diǎn)擊紅色方框處進(jìn)行下載。 這是筆者下載好的Windows系統(tǒng)使用的VMware17.0.0 VMware17.0.0百度云

    2024年03月28日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包