c++ - Include string in file on compilation -
i work on team project using teensy , matlab, , avoid version differences (e.g 1 person loads teensy version a, , person using matlab has version b of code), i'd send version string on pairing.
however, want version string sit in shared file between matlab code , teensy, , every time program loaded teensy, have included on compilation constant.
sort of like:
const string version = "<included file content>";
the matlab on part can read @ runtime.
i thought of using file contents assignment variable name shared both teensy , matlab, prefer more elegant solution if such exists, 1 doesn't include executing code external file @ runtime.
one way have simple setup so:
version.inc:
"1.0.0rc1";
main.cpp:
const string version = #include "version.inc" ...
note newline between =
, #include
in place keep compiler happy. also, if don't want include semicolon in .inc
file, can this:
main.cpp:
const string version = #include "version.inc" ; // put semicolon on newline, again keep compiler happy
edit: instead of
.inc
file, can have file extension desire. it's taste edit: if wanted to, omit quotes
.inc
file, lead messy code this: version.inc:
stringify( 1.0.0rc1 );
main.cpp:
#define stringify(x) #x const string version = #include "version.inc" ...
edit:
as @Ôrel pointed out, handle generation of version.h
or similar in makefile. assuming you're running *nix system, try setup this:
makefile:
... # "1.0.0rc1"; > version.h echo \"`cat version.inc`\"\; > version.h ...
version.inc:
1.0.0rc1
main.cpp:
const string version = #include "version.h"
Comments
Post a Comment