x86-windows-static-md tripplet

2433 단어 C++vcpkgtech
vcpkg-rs를 사용하기 위해 몇 개의 필기를 찾았다.microsoft/vcpkg는'C++ Library Manager for Windows, Linux and Mac OS'인데 이번에는 이것을 설명하지 않겠습니다.

Target Triplet in vcpkg


vcpkg이 정적 링크 라이브러리인지 동적 링크 라이브러리x64-windows-staticx64-windows의 구축 목표 문자열(triplet)을 지정하기 위해서입니다.예컨대
vcpkg install openblas --triplet x64-windows
예를 들어, Open BLAS를 동적 라이브러리(.dll)로 구성합니다.
vcpkg install openblas --triplet x64-windows-static
이렇게 하면 OpenBLAS는 정적 라이브러리(.a)로 구축될 것이다.
OpenBLAS는 BLAS와 LAPACK의 일부분을 최적화한 C(+asm) 코드와 netlib의 LAPACK 설치를 그대로 사용한 부분이 있고 후자는 포탄 설치다.위의 방법은 vcpkg->cmake->msbuild에서 Visual Studio의 C compuiler를 사용하여 C 부분만 컴파일하기 때문에 netlib에서 유래한Fortran 부분은 컴파일하지 않습니다.
자세한 내용은 OpenBLAS WikiGiitHub의 해당 issue를 참조하십시오.
사실 여기 또 다른 게 있어요. x64-windows-static-md
vcpkg install openblas --triplet x64-windows-static
이것은 라이브러리(이 경우 Open BLAS)가 static에 연결되고 CRuntime(CRT)가dynamic에 연결됩니다.이렇게 하면 구축 결과물에 CRT 분이 포함되지 않기 때문에 사이즈를 줄일 수 있다.대신 실행할 때 CRT를 읽어들입니다.
이 트리플렛vcpkg은 본가가 아니다.커뮤니티 관리 나는 이 일대에 대해 잘 안다.
Why should x64-windows-static-md not be the preferred triplet on Windows? 3가지 모두 지원되며 환경 변수VCPKGRS_DYNAMICRUSTFLAGS에 따라 전환 처리됩니다.vcpkg-rsRUSTFLAGS=-Ctarget-feature=+crt-static로 지정되었고 Rust 측면에서 CRT를 정적 링크하려는 경우는 이때 사용x64-windows-static으로 전환됩니다.

좋은 웹페이지 즐겨찾기