如何在不创建新项目的情况下更改 Atmel Studio 6 中 C++ 的 avr32-gcc C 编译器?

Posted

技术标签:

【中文标题】如何在不创建新项目的情况下更改 Atmel Studio 6 中 C++ 的 avr32-gcc C 编译器?【英文标题】:How do I change the avr32-gcc C compiler for the C++ in Atmel Studio 6 without having to create a new project? 【发布时间】:2013-10-08 07:13:42 【问题描述】:

我一直在将 IAR 项目迁移到 Atmel Studio 6。我花了一些时间来创建所有文件夹并获得 IAR 项目中的正确结构。然后我意识到我创建了一个 C 项目,而实际上我也有 C++ 代码。那么问题来了:如何在不创建新项目的情况下将 GCC 编译器从 C 更改为 C++?

我找不到任何有关 Atmel Studio 6 的适当文档。此外,我看不到从 GUI 更改此参数的方法。

我发现我不必为 C++ 编译器更改 C。我必须同时使用两者。每个编译器都会完成它的工作。 avr32-gcc 编译 C 代码,avr32-gcccpp 编译 C++ 代码。现在的问题是:如何在项目中添加第二个编译器?

我已经有了 C 的 avr32-gcc。

【问题讨论】:

这可能是可能的,但与重新创建项目并确定它是“正确的”相比,是否真的值得冒以后出现问题的风险? 不确定,但我认为 gcc 应该在给定 .cpp 文件时自动调用 g++。 【参考方案1】:

对于那些对解决方案感兴趣的人,这里是如何做到的:

在 Atmel Studio 6 中打开您的项目 转到解决方案资源管理器并右键单击该项目。 选择“卸载项目” 现在项目应该是灰色的。 再次右键单击项目并选择编辑。

你会从项目的配置和设置中看到xml代码。

在第 50 行左右,您会发现以下几行:

<Language>C</Language>
<ToolchainName>com.Atmel.AVRGCC32.C</ToolchainName>

并修改如下,更改语言:

<Language>CPP</Language>
<ToolchainName>com.Atmel.AVRGCC32.CPP</ToolchainName>

再次右键单击项目并选择重新加载项目。

现在,如果您转到项目的属性 (CTRL + F7),您将在工具链中看到两个编译器。 现在您可以编译 C 和 C++ 代码了。

【讨论】:

【参考方案2】:

除了接受的答案(顺便说一句,这非常有帮助)之外,请确保项目的所有属性都与以前相同。进行建议的更改后,链接器、汇编器、预处理汇编器和存档器在更改之前存在的大多数属性都不再存在。

【讨论】:

以上是关于如何在不创建新项目的情况下更改 Atmel Studio 6 中 C++ 的 avr32-gcc C 编译器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改构建系统的情况下在 C 项目中使用 rust 代码?

如何在不更改输入内容的情况下更改输入值

如何在不创建新内容的情况下更改 UIPicker 的内容?

如何在不触摸的情况下更改按钮的图像

在不使用 xcode react-native 的情况下更改设备

使用 ajax 在不刷新站点的情况下更改 mongoDB 中的某些项目