Hello,
I'm trying to migrate a project from our old borland to the latest XE 10.1, using trial.
I ran into a problem while compiling ICU : while compiling the second dll (icuin), which depends on the first one (icuuc), there is a link error :
[ilink64 Error] Error: Unresolved external 'typeinfo for icu_53::UMemory' referenced from E:\DEV\COMPONENTS\ICU\WINDOWS\WIN64\RELEASE\COLLATIONKEYS.O
With UMemory defined (in icuuc) as this (comments stripped)
class U_COMMON_API UMemory {
public:
static void * U_EXPORT2 operator new(size_t size) U_NO_THROW;
static void * U_EXPORT2 operator new[](size_t size) U_NO_THROW;
static void U_EXPORT2 operator delete(void *p) U_NO_THROW;
static void U_EXPORT2 operator delete[](void *p) U_NO_THROW;
static inline void * U_EXPORT2 operator new(size_t, void *ptr) U_NO_THROW { return ptr; }
static inline void U_EXPORT2 operator delete(void *, void *) U_NO_THROW {}
};
U_COMMON_API is defined as __declspec( dllexport ) in icuuc and as __declspec( dllimport ) in icuin ; U_EXPORT_2 is __cdecl
I can't figure why it needs this information as there is no virtual methods in UMemory, nor than I figure how to make this to compile :(
I've put the cbproj files in a gist, if needed on undertand anything: https://gist.github.com/BastienDurel/6d7971d2379629c922d7ae9b76df510f
Thanks,