我正在将来自 aws-sdk
的软件包(jsoncpp
、vcpkg
、..)安装到我的 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