首页 > 解决方案 > 如何在appveyor上调用boost库,如何设置环境变量以成功运行boost测试?

问题描述

我想在 appveyor 中运行 boost 测试。我的代码可以在没有提升测试的情况下成功构建。当我运行 boost 测试时,它有编译错误。

Build started
2
git clone -q --branch=master https://github.com/Gaussma/StaticLibrary.git c:\projects\myproject
3
git checkout -qf 857f43f706d59e6ed74d7af6771d102850e615a0
4
msbuild "c:\projects\myproject\StaticLibrary.sln" /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
5
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
6
Copyright (C) Microsoft Corporation. All rights reserved.
7
8
  LinkedListcpp.cpp
9
  MathFuncsLib.cpp
10
  Generating Code...
11
  MathFuncsLib.vcxproj -> c:\projects\myproject\x64\Debug\MathFuncsLib.lib
12
  boostTest_LinkedList.cpp
13
c:\projects\myproject\myexecrefslib\boosttest_linkedlist.cpp(3): fatal error C1083: Cannot open include file: 'boost/test/included/unit_test.hpp': No such file or directory [c:\projects\myproject\MyExecRefsLib\MyExecRefsLib.vcxproj]

显然,appveyor 找不到 boost 库。
在本地,我使用 Visual Studio 2017 和 boost library 1_68_0 来生成 MyExecRefsLib.vcxproj 文件。

我在stackoverflow上搜索,发现其他人以这种方式实现了.yml文件。

environment:
  BOOST_ROOT: C:\Libraries\boost_1_59_0
  BOOST_LIBRARYDIR: C:\Libraries\boost_1_59_0\lib64-msvc-14.0

因为我在 appveyor 中使用 Visual Studio 2017 并且已经在 appveyor 虚拟机中安装了 boost,所以我为 boost_1_67_0 相应地更新了它。
https://www.appveyor.com/docs/windows-images-software/#boost

environment:
  BOOST_ROOT: C:\Libraries\boost_1_67_0
  BOOST_LIBRARYDIR: C:\Libraries\boost_1_67_0\lib64-msvc-14.1

我没有 .yml 文件,我在 appveyor 的项目设置中手动设置了这两个环境变量。

我想知道这两个环境变量运行 boost 测试的校正设置是什么?当前设置有编译错误。

标签: appveyor

解决方案


Acutually,这是一个非常简单的问题。我们应该使我的本地机器和appveyor之间的构建环境相同。

在 appveyor 中:环境:BOOST_ROOT: C:\Libraries\boost_1_64_0 BOOST_LIBRARYDIR: C:\Libraries\boost_1_64_0\lib64-msvc-14.1

在 Visual Studio 中:

项目-> 属性-> C/C++ -> 常规-> 附加包含目录:C:\Libraries\boost_1_64_0

项目-> 属性-> 链接器-> 附加库依赖项:C:\Libraries\boost_1_64_0\lib64-msvc-14.1

只需将库中的 boost_1_64_0 移动并将库从 stage_x8\lib 更改为 lib64-msvc-14.1 即可。


推荐阅读