我们如何使用从 vcpkg 安装的软件包?

时间:2021-06-05 17:03:53

标签: c++ cmake vcpkg

我正在将来自 aws-sdk 的软件包(jsoncppvcpkg、..)安装到我的 cmake 项目中。但是我很难在我的项目中尝试使用它们,很难弄清楚如何让 cmake 找到已安装的软件包,不知何故我设法添加了 AWS-SDK 的目标路径,但我发现其他包很难。所以我的问题是,我们如何让 cmake 找到使用 vcpkg 安装的软件包?

我的 CMakeLists.txt 文件如下所示:

cmake_minimum_required(VERSION 3.2)
set(CMAKE_CXX_STANDARD 11)
project(compiler LANGUAGES CXX)

include_directories(${JSONCPP_INCLUDE_DIRS})

find_package(AWSSDK REQUIRED COMPONENTS s3)

add_executable(${PROJECT_NAME} compiler.cpp)

target_link_libraries(${PROJECT_NAME} ${AWSSDK_LINK_LIBRARIES})

target_link_libraries(${PROJECT_NAME} ${JSONCPP_LINK_LIBRARIES})

这是我在其中安装 vcpkg 和这些软件包的 docker 文件。

FROM ubuntu:18.04

WORKDIR /app

RUN apt-get update && \
  apt-get install ffmpeg \
  g++ \
  git \
  curl \
  zip \
  unzip \
  tar \
  openssl \
  gcc \
  cmake \
  zlib1g-dev \
  libcurl4-openssl-dev \
  libssl-dev \
  uuid-dev \
  libpulse-dev \
  make \
  pkg-config -y

RUN git clone https://github.com/Microsoft/vcpkg.git && \
  ./vcpkg/bootstrap-vcpkg.sh
RUN ./vcpkg/vcpkg install "aws-sdk-cpp[s3]" --recurse
RUN ./vcpkg/vcpkg install "jsoncpp"
COPY . .

RUN DIR=compiler && mkdir ${DIR} && cd ${DIR} && \
  cmake .. -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake && \
  cmake --build .

CMD cd compiler && ls -a && ./compiler

0 个答案:

没有答案