如何从 Visual C++ IDE 中构建 boost 库?
how can I build the boost libraries from within the Visual C++ IDE?
我的想法是在我的项目中有一个地方,我可以在其中编辑整个最终项目的 compiler/linker 设置。
这变得很重要,因为在 x64 上存在混合 AVX 而不是 AVX 代码的问题。
如果这(使用 Visual C++ IDE 编译 boost)是不可能的,那么在 boost 构建系统中哪里可以更改编译器设置?
PS。
要使用任何需要的定义编译的 .cpp 文件列表已经足够了。我不明白为什么人们认为开发人员不能从这里开始(最基本的信息)。
PPS。
由于我在这里的一条评论(解释我提出这个问题的动机)已经消失(可能被 "moderators" 之一删除)我再次在这里添加它:
如果您不理解一步构建过程的必要性,那么您不应该在这里回答问题或对它们进行投票。
使用 Boost 的 JAM 构建系统构建库。很多 Boost 都是不需要显式 linked 的头文件,但是如果您需要(线程库、系统等...)静态 link 到 Visual C++ 中的那些 .libs .
This becomes important, since on x64 there is the problem of mixing AVX and not AVX code.
混合AVX和SSE代码没有问题,只要正确编写AVX代码(即在输入SSE代码之前清除ymm寄存器的高128位)。在 SSE 和 AVX 交互方面,x64 没有什么特别之处。
If this (compiling boost using the Visual C++ IDE) is not possible, where in the boost build system can one change the compiler settings?
即使理论上可行,这也是一项极其艰巨的任务。 Building Boost 涉及许多检查,每个检查基本上意味着编译并可能 运行 一个测试程序。然后这些检查会影响 Boost 编译。我认为这不可能在 Visual Studio 项目中重现。
为了在构建 Boost 时指定命令行参数,您可以使用 cxxflags
、cflags
和 linkflags
选项(参见 here),例如:
b2 variant=release "cxxflags=/arch:AVX" stage
这个很简单.. Boost由C++源文件和头文件组成。因此:
- 将 Boost 根目录添加到您的包含路径。
- 对于您使用并具有 *.cpp 源文件的任何库,只需将这些源文件添加到您的项目中即可。
- 查看库的 Boost 构建文件 (Jamfiles) 并添加他们想要的通常最少的定义集。大多数时候没有什么可添加的。
就是这样。
我的想法是在我的项目中有一个地方,我可以在其中编辑整个最终项目的 compiler/linker 设置。 这变得很重要,因为在 x64 上存在混合 AVX 而不是 AVX 代码的问题。 如果这(使用 Visual C++ IDE 编译 boost)是不可能的,那么在 boost 构建系统中哪里可以更改编译器设置?
PS。 要使用任何需要的定义编译的 .cpp 文件列表已经足够了。我不明白为什么人们认为开发人员不能从这里开始(最基本的信息)。
PPS。 由于我在这里的一条评论(解释我提出这个问题的动机)已经消失(可能被 "moderators" 之一删除)我再次在这里添加它: 如果您不理解一步构建过程的必要性,那么您不应该在这里回答问题或对它们进行投票。
使用 Boost 的 JAM 构建系统构建库。很多 Boost 都是不需要显式 linked 的头文件,但是如果您需要(线程库、系统等...)静态 link 到 Visual C++ 中的那些 .libs .
This becomes important, since on x64 there is the problem of mixing AVX and not AVX code.
混合AVX和SSE代码没有问题,只要正确编写AVX代码(即在输入SSE代码之前清除ymm寄存器的高128位)。在 SSE 和 AVX 交互方面,x64 没有什么特别之处。
If this (compiling boost using the Visual C++ IDE) is not possible, where in the boost build system can one change the compiler settings?
即使理论上可行,这也是一项极其艰巨的任务。 Building Boost 涉及许多检查,每个检查基本上意味着编译并可能 运行 一个测试程序。然后这些检查会影响 Boost 编译。我认为这不可能在 Visual Studio 项目中重现。
为了在构建 Boost 时指定命令行参数,您可以使用 cxxflags
、cflags
和 linkflags
选项(参见 here),例如:
b2 variant=release "cxxflags=/arch:AVX" stage
这个很简单.. Boost由C++源文件和头文件组成。因此:
- 将 Boost 根目录添加到您的包含路径。
- 对于您使用并具有 *.cpp 源文件的任何库,只需将这些源文件添加到您的项目中即可。
- 查看库的 Boost 构建文件 (Jamfiles) 并添加他们想要的通常最少的定义集。大多数时候没有什么可添加的。
就是这样。