CVICALLBACK is just a #define to (ultimately) tell the compiler to use the __cdecl calling convention:
#if defined(__linux__) || defined(__APPLE__)
#define __CFUNC
#define __CFUNC_C
#define __CFUNCPTRVAR
#define CVICDECL
#define CVICALLBACK CVICDECL
#else
#define __CFUNC __stdcall
#define __CFUNC_C __cdecl
#define __CFUNCPTRVAR __cdecl
#define CVICDECL __cdecl
#define CVICALLBACK CVICDECL
#endif
Assuming that gcc understands the __cdecl keyword it should work fine.
(In this context "CVICALLBACK" isn't specific to CVI, it refers to any C environment. The "CVI" prefix is present for historic reasons.)