【发布时间】:2016-04-09 22:12:19
【问题描述】:
我的想法是在我的项目中拥有一个单独的位置,我可以在其中编辑整个最终项目的编译器/链接器设置。 这变得很重要,因为在 x64 上存在混合 AVX 而不是 AVX 代码的问题。 如果这(使用 Visual C++ IDE 编译 boost)是不可能的,那么在 boost 构建系统中哪里可以更改编译器设置?
PS。 要使用任何需要的定义编译的 .cpp 文件列表已经足够了。我不明白为什么人们认为开发人员不能从这个(最基本的信息)开始。
PPS。 由于我在这里的一个 cmets(解释了我提出这个问题的动机)已经消失(可能被其中一位“版主”删除),我在这里再次添加它: 如果您不了解一步构建过程的必要性,那么您不应该在这里回答问题或投票。
【问题讨论】:
-
您应该可以在
user-config.jam中设置编译器选项。我什至不想开始考虑为 boost 的野兽制作功能性视觉工作室解决方案。 -
PS 到底是什么意思?有 30 多个库可以编译,可能有一千个左右的 .cpp 文件(总数接近 10k,但其中包括测试和示例)。尝试重新实现似乎不切实际。正确配置中的脚本编译提升(见上文)。安装到指定位置('avx'、'noavx')。在 Visual Studio 中创建额外的配置,因此有一组(调试、发布等)用于 avx,另一组用于 noavx,并将它们指向特定目录。
-
您甚至可以修改
boostcpp.jam中的rule tag以使构建系统适当地命名库(添加-avx和-noavx),因此您不需要依赖于拥有多个目录. -
在我的构建系统上,我使用 python 脚本构建 3rd 方库,例如 boost、openCV、PCL 等,并使用 devenv 编译 Visual Studio 项目。脚本中给出了构建选项。该脚本由 Jenkins 前端启动。
-
如果您只使用少量的 boost,那么您可以使用 bcp 将相关部分拉出,然后将它们扔到您的项目中,使用与其余代码相同的标志构建它们.也许检查 .jam 文件,或者运行一次构建并观察它们传递给编译器的选项。您的问题并不完全清楚您对哪个 boost 子集感兴趣。我的观点是整个事情很大,根据我的经验,经常重新编译是不切实际的。
标签: c++ boost boost-build