[Geany-Users] Help running GCC command through Geany

Matthew Brush mbrush at xxxxx
Wed Mar 8 05:02:56 UTC 2017

On 2017-03-07 07:15 PM, Allan Taylor wrote:
> Hello everyone,
> First time posting to this group! I'm a lecturer at a university and I'm
> interested in using Geany as the IDE for a class we run on an introduction
> to the C language for freshman electrical and computer engineering
> students. Is this the appropriate way to ask questions / for help? I didn't
> seem to find any Geany forums...
> Anyways, I'm trying to figure out how I can use Geany to build a
> multiple-C-file project on a Windows machine. I have installed MinGW / GCC
> on my computer and have added the directory as part of the "PATH" variable.
> I can access GCC directly from the command line no problem. Geany actually
> works great when compiling and running single-file programs.
> I'm trying to run a Command Prompt expression I wrote which generates the
> object files for every C-file in the current directory. To do this, I need
> to use multiple calls to GCC using a for-loop. Afterwards, I can use a
> single call to GCC to link all the object files together. No problems
> there...
> The problem I'm having is this: when I try to add the CMD prompt expression
> to a custom build command, Geany gives me the error "Process failed (They
> system cannot find the file specified)".
> The command I'm trying to run is below:
> for %i in (*.c); do gcc -Wall -c -o "%~ni.o" "%i";
> This works fine when I run it directly from the CMD prompt. Any reason why
> this would not work through Geany's "Set Build Commands" area?
> The linking command (to merge all the object files together) works fine
> from Geany:
> gcc -Wall -o "%e" *.o
> Currently, I just have to click the "Compile" button separately on every C
> file individually first before doing the linking command above.
> Below is the computer information:
> *Geany 1.29 for Windows*
> *Running Windows 7, 64-bit*
> The two C-files I'm trying to compile together are quite simple... see
> below:
> Inside main.c:
> #include "stdio.h"
> int myfunc(int,int);
> int main(void)
> {
>   int a = 5, b = 2;
>   printf("My answer is %d", myfunc(a,b));
>   return 0;
> }
> Inside function.c:
> int myfunc(int x,int y)
> {
>   return 3*x - y;
> }
> Any help is greatly appreciated! Thanks!

Probably the best solution is to use a Make file, something like this 
should do:

     SRCS = main.c function.c
     OBJS = $(SRCS:.c=.o)

     program: $(OBJS)
     	gcc -o $@ $(OBJS)

     	gcc -Wall -c -o $@ $<

Matthew Brush

More information about the Users mailing list