Drone.io 使用提升库进行C++配置
Drone.io configuration for C++ with Boost libraries
我想配置 drone.io 以自动测试我的C++项目。不幸的是,每次构建都失败,因为SCons找不到我刚刚安装的标头。我从这个开始:
sudo apt-get install g++ bison flex libgmp-dev glpk libboost-all-dev scons
echo 2 | sudo update-alternatives --config gcc
scons -Q runProgramsTests
但每次构建失败时都会显示一条消息:
$ scons -Q runProgramsTests
Your environment does not seem to have header <boost/container/map.hpp>!!
Your environment does not seem to have header <boost/container/set.hpp>!!
Your environment does not seem to have header <boost/container/vector.hpp>!!
Invalid compiler/libraries installation - build terminated!!
负责此消息的构建脚本部分如下所示:
# Assuming that instalation is valid unless proved otherwise
validInstallation = True
conf = Configure(env)
# C++ check
if not conf.CheckCXX():
print('Your environment/C++ compiler is not configured/installed correctly!!')
validInstallation = False
# Header check
for header in [
# standard libraries
'algorithm', 'cstdlib', 'iomanip',
'iostream', 'fstream', 'sstream',
'memory',
'stdexcept', 'string', 'utility',
# boost libraries
'boost/scoped_ptr.hpp',
'boost/shared_ptr.hpp',
'boost/weak_ptr.hpp',
'boost/algorithm/string.hpp',
'boost/assign.hpp',
'boost/bimap/bimap.hpp',
'boost/container/map.hpp',
'boost/container/set.hpp',
'boost/container/vector.hpp',
'boost/program_options.hpp',
'boost/range/adaptor/map.hpp',
'boost/range/adaptor/reversed.hpp',
# Flex library
'FlexLexer.h',
# GNU Multiple Precision library
'gmpxx.h',
# GNU Linear Package Kit
'glpk.h'
]:
if not conf.CheckCXXHeader(header):
print('Your environment does not seem to have header <'+header+'>!!')
validInstallation = False
如果这很重要SConstruct
可以在此处找到全部内容。
我不明白为什么找到一些 Boost 包,而有些则找不到。droid.io 页面上,我发现项目生成的存档工件不能超过 10MB 的信息 - 但没有关于已安装库限制的信息。
在调用scons
之前运行sudo ldconfig
没有帮助,因此对手动设置环境变量没有帮助:
C_INCLUDE_PATH=/usr/include
CPLUS_INCLUDE_PATH=/usr/include
我错过了什么吗?毕竟,我安装了libboost-all-dev
它应该包含所有 Boost 库和标头。
终于弄清楚了原因:drone.io 使用旧版本的 Ubuntu(精确),默认使用 Boost 库的 1.46 版,而 Boost.Container 包是在 1.48 版本中添加的。
将设置修改为:
sudo apt-get install bison flex glpk libboost1.48-all-dev
echo 2 | sudo update-alternatives --config gcc
scons -Q runProgramsTests
一切都按预期工作。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 无法找到/读取配置文件.conf-FileIOException
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 一种在C++中读取TXT配置文件的简单方法
- 生成MRPT库时cmake配置失败
- FFMPEG配置文件级别id大小无效
- 如何通过Conan和CMake找到用于pkg配置的.pc文件
- 配置文件解析器仅返回以前的值
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 是否可以配置提升日志刷新?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- C/C++:打印(配置)头文件的内容
- 配置:错误:找不到 MySQL 包含目录
- 安装 psutil 和为 pypy 配置期间出错
- 叮当格式化程序多行格式配置错误
- 使用 Eclipse CDT 进行 Cplex 配置
- 为c++配置Visual studio代码
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- 如何在窗户上使用和配置叮当声?