Eclipse中gcc编译器的默认标志

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

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

您可能必须在运行Eclipse之前指定环境变量(然后在Eclipse运行make时inheritance它们),但可能有一种方法可以在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的错误轨道上。

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

选择编译器的警告部分,在“杂项”中设置-Wall和-pedantic For -ansi的复选框

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

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

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

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


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

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

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

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