node.js 의 npm 처럼 c는 왜 간편한 패키지 설치 관리자 같은게 없나 늘 의문 이었슴.
c#(.net)을 위한 nuget 이 있기는 했지만, 이건 c++ 용이 아니라 여러가지가 혼재 되어 있어서
사용하기 애매 하단 느낌이었는데, 자료 검색 중 발견 !!!!!!!
이미 많은 분들이 사용하고 있을 듯, 사용법은 기존 pkg manager 와 비슷
https://github.com/microsoft/vcpkg
위 git 웹이지 설명에는 라고 되어 있었슴.
C++ Library Manager for Windows, Linux, and MacOS
해당 페이지에 설치 방법에 대해 설명이 있으니, 가능한 자세히 읽어볼 것.
아래와 같이 명령을 사용할 수 있으며
>vcpkg version <- 버젼 확인
>vcpkg search <pkgname> <- 설치하고픈 이름의 패키지 찾기
>vcpkg install <pkgname> <- 패키지 설치
>vcpkg remove <pkgname> <- 패키지 삭제
ex) mysql 검색시
G:\vcpkg>vcpkg search mysql
gdal[mysql-libmariadb] Add mysql support using libmariadb
libmariadb 3.1.7#2 MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL...
libmariadb[openssl] Enable SSL support
libmariadb[zlib] Use internal zlib
libmysql 8.0.20 A MySQL client library for C development.
libodb-mysql 2.4.0-7 MySQL support for the ODB ORM library
poco[mysql] Mysql support for POCO
sqlpp11-connector... 0.29-1 A C++ wrapper for MySQL meant to be used in combination with sqlpp11.
sqlpp11-connector-mysql[mariadb] Use MariaDB connector
sqlpp11-connector-mysql[mysql] Use MySQL connector
If your library is not listed, please open an issue at and/or consider making a pull request:
https://github.com/Microsoft/vcpkg/issues
ex>openssl 검색시
G:\vcpkg>vcpkg search openssl
boringssl 2020-04-07 BoringSSl is a fork of OpenSSL developed by Google
boringssl[tools] Build bssl executable
curl[openssl] SSL support (OpenSSL)
ffmpeg[openssl] openssl support in ffmpeg
freetds[openssl] OpenSSL support
ixwebsocket[openssl] SSL support (OpenSSL)
libarchive[openssl] OpenSSL support
libevent[openssl] Support for openssl
libevhtp[openssl] Support SSL for libevhtp
libmariadb[openssl] Enable SSL support
libpq[openssl] support for encrypted client connections and random number generation on platf...
librdkafka[ssl] Build with OpenSSL
libressl 2.9.1#3 LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, wit...
libressl[tools] Build openssl and ocspcheck executables
libssh[openssl] Crypto support (OpenSSL)
libzip[openssl] AES (encryption) support using OpenSSL
mongoose[ssl] Build with openssl
open62541[openssl] Enable encryption support (uses OpenSSL)
openssl 1.1.1g OpenSSL is an open source project that provides a robust, commercial-grade, an...
openssl-unix 1.1.1g#1 OpenSSL is an open source project that provides a robust, commercial-grade, an...
openssl-uwp 1.1.1g OpenSSL is an open source project that provides a robust, commercial-grade, an...
openssl-windows 1.1.1g OpenSSL is an open source project that provides a robust, commercial-grade, an...
restbed[openssl] Secure over the wire communication allowing you to transmit private data online.
usockets[ssl] Build usockets with openssl support
If your library is not listed, please open an issue at and/or consider making a pull request:
https://github.com/Microsoft/vcpkg/issues
>내용 추가, x64-windows-static 옵션을 주면, static 빌드도 얻을수 있슴.
아래는 지원하는 형식
G:\vcpkg>vcpkg help triplet
Available architecture triplets
VCPKG built-in triplets:
arm-uwp
arm64-windows
x64-linux
x64-osx
x64-uwp
x64-windows-static
x64-windows
x86-windows
VCPKG community triplets:
arm-ios
arm-mingw-dynamic
arm-mingw-static
arm-windows
arm64-ios
arm64-mingw-dynamic
arm64-mingw-static
arm64-osx
arm64-uwp
arm64-windows-static
s390x-linux
wasm32-emscripten
x64-ios
x64-mingw-dynamic
x64-mingw-static
x64-osx-dynamic
x64-windows-static-md
x86-ios
x86-mingw-dynamic
x86-mingw-static
x86-uwp
x86-windows-static-md
x86-windows-static
주의 또는 참고
1.패키지는 보통 x86-windows, x64-windows, x64-windows-static 버젼이 있었슴.
>vcpkg install libmysql:x64-windows
입력시 64비트 버전 설치 가능 입력하지 않으면, x86버젼 설치
>vcpkg remove libmysql:x64-windows
삭제시에도 구분해서 삭제를 해주어야 함.
2.패키지 설치시에 필요한 파일이 vcpkg 아래 폴더에 다운로드 되고, 설치되고,
컴파일이 되어, vcpkg/installed 폴더 아래에 설치 되었슴
vcpkg/ports 는 로컬에 현재 설치가능한 목록을 로컬에 가지고 있어서, 검색을 용이하게
하는 것.
3.패키지 설치에 Dynamic Library(.dll) 또는 Static Library(.lib) 타입 이미 결정되어 있는 듯
아마도 CMake 툴 기반으로 동작하는 것 같은데, 해당 빌드 속성 변경은 잘모르겠슴.
boost 부터, openssl 까지 왠만한 모듈은 거의 다 있슴.
4.vcpkg integrate install
-' visualStuio에서 vcpkg에서 설치한 패키지를 사용하고 싶으면 꼭 해줘야 함. (단, 이걸 몇번 해봐야 하는지는 모름. 필요한 것 다 설치하고 한번 해주면 되지 않을까?)
5. vcpkg 생성이 실패하거나 해당 패키지 설치후 빌드시 실패하면
관련 Issue( https://github.com/Microsoft/vcpkg/issues ) 쪽에서 관련 정보를 찾아보면 동일한 문제가 올라와 있으면, 조만간 수정된 내역이 올라오거나, 수정된 내용을 참고 해서 직접 수정하면 됨.
댓글
댓글 쓰기