我正在开发一个Eclipse插件,其中必须检查当前C项目中设置了哪些编译器选项。基本上,我想访问属性->C/C++Build->Settings->GCC C Compiler->All options字段。
我已经搜索了如何访问它,但我还没有找到一种方法。我试图通过首选项访问它,如下代码所示:
IEclipsePreferences root = Platform.getPreferencesService().getRootNode();
IResourceInfo info = getResourceInfo(translationUnit, description);
ITool tools[] = info.getTools();
for (ITool t : tools) {
if (t.getName().compareToIgnoreCase("GCC C Compiler") == 0) {
try {
//Finally the field I was looking for
String commandLine = t.getToolCommandFlagsString(getProject().getFullPath(), null);
} catch (BuildException e) {
e.printStackTrace();
}
}
}
然后我就可以解析字符串了,虽然不是很理想,但它可以工作。我从这篇文章中获得了getResourceInfo()函数:如何以编程方式更改文件的Eclipse CDT工具设置?
所以,谢谢justinmreina的回答!
另外,这是一个有用的帖子,我在一个GNU C项目中找到dang选项。不是OP的问题,但答案与你的问题相关。
祝你好运!
编辑:我已经苦苦思索了一段时间了,因为我最近在这个问题上跌跌撞撞/失败了。下面是如何从代码中设置选项。
//assumptions
//#1 project is [0] in workspace
//#2 compiler is [2] in workspace
//get project
IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject("hello_world");
//get <storageModule moduleId="org.eclipse.cdt.core.settings">
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(proj);
//get <storageModule moduleId="cdtBuildSystem">
IManagedProject sub_info = info.getManagedProject();
//get <configuration name="Debug">
IConfiguration config = sub_info.getConfigurations()[0];
//get <toolChain>
IToolChain toolchain = config.getToolChain();
//get <tool name="GCC C Compiler">
ITool tool = toolchain.getTools()[2];
//get <option>
IOption option = tool.getOptionBySuperClassId("gnu.c.compiler.option.misc.other");
//----append new flag----//
String new_opt_value = option.getValue() + " -mySuperFlag";
//-----store it----//
ManagedBuildManager.setOption(config, tool, option, new_opt_value);
ManagedBuildManager.saveBuildInfo(proj, true);
注意-一旦您开始将此操作视为“Eclipse资源”,方法就变成了(有点...)clear-每个访问字段的对象调用都只是访问.cproject资源的XML模式中的另一个部分
希望这有帮助!
问题内容: 我在Java应用程序中使用该类,并且需要能够获取HTTP状态代码。如果使用它,则可以在其中看到HTTP状态代码。我还有其他功能可以获取int或String的HTTP状态代码吗? 谢谢一群! 问题答案: 使用,它返回一个包含状态码,协议版本和“原因”的对象。
当Android设备连接到wifi AP时,它会用如下名称来标识自己: android_cc1dec12345e6054 如何从 Android 应用中获取该字符串?不是为了改变它,只是为了读出。 编辑: 这是我的路由器Web界面的屏幕截图,显示了所有已连接设备的列表。请注意列表中的两个Android设备 - 如何从设备上运行的Java代码中读取该字符串?
我们采用GitLab作为项目代码释放平台,所有仓库源码及更新获取都需通过GitLab同步。 gitlab代码入口为:https://gitlab.com/nationalchip/vsp_sdk 一、注册GitLab账号 GitLab登录链接 GitLab账号注册可能需要翻墙,所以不能打开注册链接的,我们建议通过GitHab账号登录。 GitHub注册链接 没有GitHub账号的话,先通过下面链接
参考快速上手指南的代码获取章节: gitlab代码获取章节
有两种途径获取: 代码托管到阿里云[https://code.aliyun.com/]上,需要去注册一个账号,把账号告知我们的FAE,我们给你释放 pull code 的权限。
问题内容: 如何从网站获取HTML代码,进行保存并通过LINQ表达式查找一些文本? 我正在使用以下代码来获取网页的来源: 如何在网页源中的div中查找文本? 问题答案: 从网站获取HTML代码。您可以使用这样的代码。 这将为您提供从网站返回的 HTML 代码。但是通过 LINQ 查找文本并不是那么容易。也许使用正则表达式会更好,但不能与 HTML 代码一起很好地使用