根据 x86/x64 和 debug/release 代码更改构建输出 Code::Blocks/Xcode

Changing the build output based on x86/x64 and debug/release Code::Blocks/Xcode

我认为一些背景信息会有所帮助。我目前正在为我的学校开展一个项目,我们正在为未来的学生构建跨平台图书馆。我们被要求在每个目标平台上使用最受欢迎的 IDE/Compiler。这意味着我们将 Visual Studio 2015 与 Visual C++ 编译器用于 Windows,Code::Blocks 与 gcc 用于 Linux (Ubuntu),以及 XCode 与叮当 Mac.

我们目前正在为我们的图书馆开发一个测试甜品,但是 运行 有点像墙。 test sweet 需要知道在哪里可以找到所有配置的库(x86 调试、x86 发布、x64 调试、x64 发布)。

Visual Studio 让这变得简单,因为我可以为所有这些不同的构建选择输出目录。

Code::Blocks,另一方面,只给我输出目录的发布和调试构建选项。

XCode 是另一个问题。它只是给了我一个选择输出的位置。它不关心它是 debug/release 还是 x86/x64。它只是说命名一个文件夹,我会把所有东西都放在那里。

有没有办法在 Code::Blocks 和 XCode 中扩展这些选项?我研究了 post 构建脚本来为我移动这些库,但无法弄清楚如何在脚本中判断库是否构建配置。我被告知库必须保持相同的名称,因此不能根据构建配置重命名它们。

我无法帮助 XCode,但我知道在代码块中,您可以根据需要添加任意数量的构建配置。它们被称为构建目标,但它们与 gcc 或 visual studio 生成文件中的目标并不完全相同。

要添加其他目标,请从菜单 select "Project->Properties..." 然后 select "Build targets" 选项卡。然后,您可以为 32 位或 64 位版本的项目添加 2 个新目标。您可能还想重命名现有目标以反映其构建配置。

在构建目标选项卡的最底部,有一组名为 "Build target files" 的复选框。至少在我使用的代码块版本上,当你添加一个新目标时,所有的复选框都是空的。如果是这种情况,您需要检查该构建配置所需的文件。

最后一步是为新的构建配置设置编译器选项、链接器选项、包含文件夹和 lib 文件夹。单击构建选项按钮,并添加任何其他编译器以及适用于该构建配置的设置和文件夹。

这里有一点需要注意。 Codeblocks 允许您在项目和目标级别设置编译器和链接器选项。默认情况下,在项目级别进行的任何设置都适用于所有目标。

例如,对于一个简单的程序,可以在项目级别设置 -Wall 选项,可以为调试配置设置 -g,可以为发布配置设置 -O2。最终结果是,当您尝试构建调试目标时,用于编译器的选项是“-Wall -g”,而用于发布目标的选项是“-Wall -O2”。类似的评论适用于链接器选项和文件夹。

在您的项目中,如果在项目级别设置了任何仅适用于 32 位或 64 位目标的现有选项,您需要将这些设置从项目级别移动到各个目标。