Eclipse中gcc编译器的默认标志

时间:2010-02-02 12:20:43

标签: c eclipse gcc eclipse-cdt

我希望我的所有C程序默认使用选项-Wall -pedantic -ansi进行编译。有没有办法让Eclipse为所有项目默认将这些标志添加到编译器命令中?

5 个答案:

答案 0 :(得分:1)

假设您正在使用Eclipse的内部构建器goto Preferences-> C / C ++ Build-> Settings

为编译器选择警告部分,有-Wall和-pedantic的复选框 为-ansi设置杂项

正如OP指出的那样,这只是针对每个项目而不是全局设置

答案 1 :(得分:1)

指定CFLAGS以包含这些值,并让Eclipse运行一个在编译时默认使用该环境变量的工具(例如make)。

您可能必须在运行Eclipse之前指定环境变量(然后在Eclipse运行make时继承它们),但可能有一种方法可以在Eclipse中指定默认环境。

(我不使用Eclipse,因此我将不得不看到安装和测试它;或者这个答案可能会慢慢记住别人的记忆,如果有的话,可以自由编辑。)


顺便说一句,您可能需要-std = c99而不是-ansi。 -ansi选项只是意味着-std = c89或-std = c ++ 98,这取决于你是在编译C还是C ++,而且这两个标准都显示了它们的年龄。


我在运行Windows的VM中安装了Eclipse来测试它,即使CFLAGS在环境中,Eclipse也不会使用它。 Eclipse也假装(通过显示“make all”和“make clean”等文本)在我尝试的几个情境/项目中运行make,当它不是真的使用make(可能使用一些内部引擎)时。这个答案在Eclipse的错误轨道上。

答案 2 :(得分:1)

Windows上的Eclipse:对于项目:属性 - > C / C ++ Build - >设置比“工具设置”选项卡。选择“CGG C ++ Compiler”而不是右侧你会看到Command:g ++ 将它修改为Command:g ++ CFLAGS,例如,如果你想将C ++ 11支持修改为Command:g ++ --std = c ++ 11

PS:此修改仅对当前项目有效,仅对当前配置有效。如果您希望它适用于所有配置,请同样修改每个配置(运行,调试)。

答案 3 :(得分:-1)

编辑:我看到OP从先前的评论中运行Windows,但是如果Eclipse尊重别名,则以下信息可能使Linux平台上的Eclipse用户受益。


您是否在Linux中运行Eclipse?如果是这样,请尝试使用gcc命令别名;在终端上运行:

alias gcc='gcc -Wall -pedantic -ansi'

这是Linux中用于指定应用程序的默认参数的常用方法。但是,Eclipse可能会执行实际的gcc应用程序并忽略别名;我还没有测试过。

答案 4 :(得分:-1)

是,运行方式 - >运行配置 - >第一个标签是“主”,选择第二个标签(旁边的标签),你有参数框,粘贴-Wall -pedantic -ansi然后只需应用然后运行。每次下次运行时,您都会将这些参数作为默认值

相关问题