我在一个安装了Boost的系统上进行开发时遇到了一个问题:
/usr/include
/usr/lib
在将要部署到的系统上,libboost库位于:
/nfs/mount/boost
/nfs/mount/lib
而且我无法改变部署的每个系统,以便在同一位置安装libboost。
有没有一种方法可以
我正在使用g ++ 8
答案 0 :(得分:-1)
听起来像您需要更复杂的构建环境。
我不确定您在这里是什么意思
- 将libboost包含为二进制可执行文件的一部分,从而无需链接
不能跳过链接。如果您尝试避免使用可执行文件分发 .dll / .so文件,则需要避免使用Boost库中需要编译Boost二进制文件的部分(即,此处未列出的部分{{ 3}})。
当然,这种情况并不常见。所以...
- 在尝试链接到libboost时使可执行文件搜索不同的目录吗?
这在您扩展时将永远无法可靠地起作用,并且是CI世界中的噩梦。这是包管理器(例如柯南(https://www.boost.org/doc/libs/1_62_0/more/getting_started/windows.html#header-only-libraries)来节省时间的地方。将软件包管理委派给第三方是使代码跨多个环境/平台构建的最可靠方法。
此外,构建可执行文件并进行分发是单独的操作。任何动态链接的库都需要在运行时在系统路径上被发现。