Eclipse CDT 项目模板 - 设置下拉选项
Eclipse CDT Project Template - Setting Drop-Down Options
我正在尝试为 Eclipse CDT 创建一个新项目模板,以解决我提出的问题 . @Jonah Graham provided a very detailed walk-through in his answer to ,这已经让我完成了大部分工作。
但是,我不知道如何设置通过下拉列表指定的选项;例如在设置/工具设置/GCC C++ 编译器/方言选项卡上将方言/语言标准设置为 ISO C++11 (-std=c++01)
。如果我想更改默认的优化或调试级别等,也会出现同样的问题。
我想也许这可以通过类似
的方式来实现
<process
type="org.eclipse.cdt.managedbuilder.core.SetMBSStringListOptionValues">
<simple name="projectName" value="$(projectName)" />
<complex-array name="resourcePaths">
<element>
<simple name="id" value=".*cpp\.compiler\.option\.dialect\.std." />
<simple-array name="values">
<element value="gnu.cpp.compiler.dialect.c++11" />
</simple-array>
<simple name="path" value="" />
</element>
</complex-array>
</process>
不幸的是,这似乎没有任何效果(没有错误,但生成的 .cproject 文件中也没有任何内容)。
我可以通过设置 "Other Dialect" 标志来解决这个问题,它只是一个字符串,但我想知道如何通过下拉菜单来做到这一点,因为它们出现在其他地方。
执行此选项的方法是将其视为字符串,并在内部将字符串值更改为枚举值。我用 C99(即不是 C++)测试了它,为此我使用了这个:
<!-- Set -std=c99 by selecting the enum in the settings -->
<process
type="org.eclipse.cdt.managedbuilder.core.SetMBSStringOptionValue">
<simple name="projectName" value="$(projectName)" />
<complex-array name="resourcePaths">
<element>
<simple name="id" value=".*compiler\.option\.dialect\.std.*" />
<simple name="value" value="ISO C99 (-std=c99)" />
<simple name="path" value="" />
</element>
</complex-array>
</process>
因此,对于您的解决方案,我希望它能奏效。请注意,该值是显示给用户的任何值:
<process
type="org.eclipse.cdt.managedbuilder.core.SetMBSStringOptionValue">
<simple name="projectName" value="$(projectName)" />
<complex-array name="resourcePaths">
<element>
<simple name="id" value=".*cpp\.compiler\.option\.dialect\.std." />
<simple name="value" value="gnu.cpp.compiler.dialect.c++11" />
<simple name="path" value="" />
</element>
</complex-array>
</process>
与您的版本相比,我更改了流程类型和整个 name="value"
元素(从 simple-array
到 simple
加上内部名称以显示名称)。
我正在尝试为 Eclipse CDT 创建一个新项目模板,以解决我提出的问题
但是,我不知道如何设置通过下拉列表指定的选项;例如在设置/工具设置/GCC C++ 编译器/方言选项卡上将方言/语言标准设置为 ISO C++11 (-std=c++01)
。如果我想更改默认的优化或调试级别等,也会出现同样的问题。
我想也许这可以通过类似
的方式来实现<process
type="org.eclipse.cdt.managedbuilder.core.SetMBSStringListOptionValues">
<simple name="projectName" value="$(projectName)" />
<complex-array name="resourcePaths">
<element>
<simple name="id" value=".*cpp\.compiler\.option\.dialect\.std." />
<simple-array name="values">
<element value="gnu.cpp.compiler.dialect.c++11" />
</simple-array>
<simple name="path" value="" />
</element>
</complex-array>
</process>
不幸的是,这似乎没有任何效果(没有错误,但生成的 .cproject 文件中也没有任何内容)。
我可以通过设置 "Other Dialect" 标志来解决这个问题,它只是一个字符串,但我想知道如何通过下拉菜单来做到这一点,因为它们出现在其他地方。
执行此选项的方法是将其视为字符串,并在内部将字符串值更改为枚举值。我用 C99(即不是 C++)测试了它,为此我使用了这个:
<!-- Set -std=c99 by selecting the enum in the settings -->
<process
type="org.eclipse.cdt.managedbuilder.core.SetMBSStringOptionValue">
<simple name="projectName" value="$(projectName)" />
<complex-array name="resourcePaths">
<element>
<simple name="id" value=".*compiler\.option\.dialect\.std.*" />
<simple name="value" value="ISO C99 (-std=c99)" />
<simple name="path" value="" />
</element>
</complex-array>
</process>
因此,对于您的解决方案,我希望它能奏效。请注意,该值是显示给用户的任何值:
<process
type="org.eclipse.cdt.managedbuilder.core.SetMBSStringOptionValue">
<simple name="projectName" value="$(projectName)" />
<complex-array name="resourcePaths">
<element>
<simple name="id" value=".*cpp\.compiler\.option\.dialect\.std." />
<simple name="value" value="gnu.cpp.compiler.dialect.c++11" />
<simple name="path" value="" />
</element>
</complex-array>
</process>
与您的版本相比,我更改了流程类型和整个 name="value"
元素(从 simple-array
到 simple
加上内部名称以显示名称)。