tutorial tools plugin para oxygen development descargar cross configurar compiler compile gcc eclipse-plugin eclipse-cdt

gcc - tools - install c++ eclipse oxygen



Eclipse CDT obtiene las opciones de GCC del código (1)

su travesía por un camino oscuro y solitario, mi amigo :). pero divertido, sin embargo.

Configuración de opciones en una herramienta / cadena de herramientas personalizada

Aquí hay un ejemplo donde alguien intentó establecer programáticamente las opciones de las herramientas / cadenas de herramientas de GNU:

* y aquí está el hilo de fondo de ese mismo autor para resolverlo:

Lo que hizo aquí lo llevará a su resolución. Sin embargo, te sugiero que primero explores el plugin.xml de org.eclipse.cdt.managedbuild.gnu.ui. Concéntrese en las cadenas de herramientas, herramientas y sus opciones.

Encontrar las opciones de GNU C Toolchain (s) / Tool (s)

Además, aquí hay una publicación útil que puse un rato atrás en ''encontrar las opciones de dang en un Proyecto GNU C''. No es exactamente la pregunta de OP, pero la respuesta es relevante para su pregunta.

Conclusión

Dudo mucho que encuentres una respuesta <10 líneas de código, incluso para establecer el indicador ''-v'' para el compilador ... Si encuentras un resultado simple, te sugiero que lo publiques aquí como seguimiento.

¡La mejor de las suertes!

EDITAR : He estado royendo esto por un tiempo ahora, porque hace poco tropecé / fracasé. Aquí es cómo configurar las opciones desde el código.

//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);

Notas : una vez que comienza a ver esta operación como un ''recurso de Eclipse'', la metodología se vuelve (algo ...) clara: cada invocación de objeto para acceder a un campo es simplemente acceder a otra sección dentro del esquema XML del recurso .cproyecto

¡Espero que esto ayude!

Estoy trabajando en un plugin de Eclipse que, entre otras cosas, debe verificar qué opciones del compilador están configuradas en el proyecto C actual. Básicamente, quiero acceder a Propiedades -> Compilación C / C ++ -> Configuración -> Compilador GCC C -> Todas las opciones.

He buscado cómo acceder a él, pero no he encontrado la manera de hacerlo. Traté de acceder a través de las preferencias como en el siguiente código:

IEclipsePreferences root = Platform.getPreferencesService().getRootNode();

Puedo acceder a las preferencias de mi complemento de esta manera, pero no a las del proyecto C.

¿Alguien sabe una manera de hacerlo? No necesito cambiar las opciones del compilador, solo para saber qué banderas están configuradas.

ACTUALIZACIÓN: he encontrado una solución.

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(); } } }

Puedo analizar el hilo, no es ideal, pero funciona. Obtuve la función getResourceInfo () de esta publicación: ¿Cómo cambio programáticamente la configuración de la herramienta CDT de Eclipse para un archivo?

Entonces, gracias justinmreina por la respuesta!