Hello,
Things like this can be a bit tricky. I think you have to do some tests to zoom in on the error.
Looking at the macros DECLARE_INSTANCE_TYPE_NAME in sqplus.h and SqPlusConst.h they do look correct to me and define the functions the linker looks for.
There seems to be one difference:
sqplus.h:
// Ordinary case
#define DECLARE_INSTANCE_TYPE_NAME_(TYPE,NAME) namespace SqPlus { \
DECLARE_INSTANCE_TYPE_BASE_(TYPE,NAME) \
template<> inline void Push(HSQUIRRELVM v,TYPE * value) { \
SqPlusConst.h:
#define DECLARE_INSTANCE_TYPE_NAME_CONST(TYPE,NAME) \
DECLARE_INSTANCE_TYPE_NAME_(TYPE,NAME) \
namespace SqPlus { \
DECLARE_INSTANCE_TYPE_NAME_CONST_BASE(TYPE,NAME) \
inline void Push(HSQUIRRELVM v,const TYPE * value) { \
There is a missing template<> in SqPlusConst.h. Maybe this? (GCC can be difficult here).
Some other useful things to do is:
1 - Insert #warning statements into macros
2 - Expand the macro manually into the source code file
Let me know how this goes.
Regards
// ATS