为C程序设置默认的NetBeans选项(-std=c99,-Wall)

19

我在Ubuntu Linux 11.10上安装并成功运行了NetBeans 6.9。我的目标是将编译器选项(如-Wall-std=c99)设置为默认值。目前,我必须右键单击我的项目->属性->C编译器->警告级别,将其更改为"More Warnings"并添加-std=c99Additional Options。当创建多个项目时,这显然是一种麻烦,并且我确定有一种方法可以使所有这些都成为默认设置。

我发现了这个主题,它与我的问题密切相关。但是,唯一的答案涉及安装Code::Blocks和MSYS 1.0.11,这对我来说没有多大意义。我不明白安装另一个IDE将如何帮助我,而且由于我已经在使用Linux,因此MSYS似乎是不必要的。

我尝试了每一个合理的搜索词汇,很惊讶我找到的信息非常少。似乎绝大多数使用NetBeans的人都应该在某个时候更改这种类型的设置。我正在搜索的词汇:'NetBeans -std=c99 default'、'NetBeans set default compile options'、'how to make NetBeans use c99 by default'和'Code::Blocks settings into NetBeans'。


我仍然不知道这个问题的答案,而且我仍然很想知道是否有人有任何信息。顺便说一句,这个问题仍然是非常开放的。 - dfarrell07
请不要使用链接缩短器。使用链接缩短器会防止 Stack Overflow 在侧栏中链接相关问题。 - XP1
什么是链接缩短器?如果有的话,您已经将它们删除了,或者我不知道它们在哪里。 - dfarrell07
只是一个提示:虽然 XP1 是完全正确的,但在简单情况下,您可以使用 CFLAGS - user719662
3个回答

5
以下是需要翻译的内容:

以下是一些您可以做的不同事情:

  1. 复制并分享配置文件,以在项目之间共享设置。
  2. 创建一个默认项目,并根据您的喜好进行配置。当您想要创建一个新项目时,只需复制默认项目并将其重命名为其他名称。
  3. 修改您的工具链属性。

有关详细信息,请参见此处:

GCC 的 NetBeans 设置


1
你可以创建一个项目模板模块。我知道这是可能的,但以前没有尝试过,这个链接解释了如何做到这一点;
https://blogs.oracle.com/seapegasus/entry/tip_create_your_own_project

(首先你需要安装NetBeans平台SDK,而不仅仅是C/C++ Bundle。)

我按照以下步骤进行了操作;

  • 打开/创建您想要使用的设置的项目。
  • 创建一个NetBeans模块项目,选择代码库名称,我给出了my.templates.ctemplate1。
  • 将“模块开发>项目模板”添加到模块项目中。在“选择项目”步骤中选择您的C项目。
  • 在下一步中,将类别选择为C/C++并为模板命名,我使用了MyCTemplate1。
  • 右键单击模块项目,然后选择“创建NBM”,它将在模块项目的构建文件夹中创建my-templates-ctemplate1.nbm。
  • 工具>插件>已下载,单击“添加插件”,并指向构建文件夹中的nbm文件。选择安装,它会发出警告,因为它没有签名。
  • 当您想要创建新的C/C++项目时,您将在向导中看到您的模板,该模板将具有与您的第一个C项目相同的所有设置。

享受其他可能性;原始项目中的文件和文件夹将保留。


0
你尝试过编辑你的`netbeans.conf`文件吗? (对我来说,它在`/usr/local/netbeans-7.0.1/etc/netbeans.conf`中)。并将所需的选项添加到`netbeans_default_options`行中吗?从查看我的文件版本,您可能需要在开关之前加上`-J`(因此`-Wall`将变为`-J-Wall`)。

谢谢您的回复!我尝试在netbeans_default_options行的末尾添加-J-std=c99 -J-Wall。以这种方式,NetBeans无法启动。然后我删除了-J选项,所以我附加了-std=c99 -Wall。NetBeans将会启动,但是没有更改任何选项。例如,我无法编译一个for(int i = 0;;);循环。我的猜测是netbeans.conf是用于Java选项的。有许多对JVM和Sun的引用,而没有对C的引用。明天,我将寻找一个.conf文件,以便修改C默认选项。感谢您让我走上新的轨道! - dfarrell07
很抱歉没有帮到您。我假设您已经看过了Netbeans C/C++ Trail吗? - Mike
1
我之前没有看到这个链接,感谢你提供。稍后我会更深入地探索它。我找到了一个关于[http://bit.ly/tqQxqP netbeans.conf]的页面。似乎只有http://bit.ly/tsEGRl启动参数可以通过命令行或全局/本地版本的netbeans.conf传递给NetBeans。对于这个特定的问题,它们都似乎没有帮助。 - dfarrell07

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接