Concatenate int para string usando C Preprocessor

Estou tentando descobrir como concatenar um#define int a um#define 'd usando oC Pré-processador. Meu compilador é o GCC 4.1 no CentOS 5. A solução também deve funcionar para MinGW.

Gostaria de acrescentar um número de versão a uma string, mas a única maneira de fazê-lo funcionar é fazer uma cópia do número da versão definida como string

A coisa mais próxima que pude encontrar foi um método de citar argumentos de macro, mas não funciona para#defines

Isso não funciona.

#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER

Não funciona sem o#s porque os valores são números e expandiria para"/home/user/.myapp" 2 6, que não é válidoC.

Isso funciona, mas não gosto de definir cópias da versão, porque também preciso delas como número

#define MAJOR_VER 2
#define MINOR_VER 6
#define MAJOR_VER_STR "2"
#define MINOR_VER_STR "6"
#define MY_FILE "/home/user/.myapp" MAJOR_VER_STRING MINOR_VER_STRING