link errors with gaigen 2.5.1 e3ga.obj
Brought to you by:
fontijne
gasym.obj : error LNK2019: unresolved external symbol "void __cdecl e3ga::setStringFormat(char const *,char const *)" (?
setStringFormat@e3ga@@YAXPBD0@Z) referenced in function _main
The symbol that is available in e3ga.obj is:
e3ga_setStringFormat@e3ga@@YAXPBD0@Z
not
setStringFormat@e3ga@@YAXPBD0@Z
This difference can be observed in the generated header and source modules:
$ grep setStringFormat *.h *.cpp
e3ga.h:void setStringFormat(const char *what, const char *format);
e3ga.cpp:void e3ga_setStringFormat(const char *what, const char *format) {
The e3ga_ prefix in the source looks like it can be removed since there is already a namespace qualifier. This is using the e3ga_cpp\ sources.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
ps. I also see the following extern's in e3ga_cpp\e3ga.h:
extern const char *string_fp; /* = \"%2.2f\" */^M
extern const char *string_start; /* = \"\" */^M
extern const char *string_end; /* = \"\" */^M
extern const char *string_mul; /* = \"*\" */^M
extern const char *string_wedge; /* = \"^\" */^M
extern const char *string_plus; /* = \" + \" */^M
extern const char *string_minus; /* = \" - \" */^M
Since these should now be set by the setStringFormat() function instead, they probably ought not be in the header (and have a different symbol name in the .cpp file as well so you'd get a link error if you tried to use them).