Home Forums Legacy SDKs Gaze SDK C Api Windows 64bit fail to link

Tagged: 

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #1447
    Xuezhong Wang
    Participant

    hi,

    I found that the samples come with the SDK is actually for 32-bit as it’s using the 32 bit lib file in the settings. However, after I changed that to 64 bit version, it still fails in link stage. error reported are:
    =======================================================================
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_destroy referenced in function “private: void __thiscall CEyeTrackingEngine::Reset(void)” (?Reset@CEyeTrackingEngine@@AAEXXZ)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_register_error_callback referenced in function “private: bool __thiscall CEyeTrackingEngine::InitializeEyeTracker(void)” (?InitializeEyeTracker@CEyeTrackingEngine@@AAE_NXZ)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_create referenced in function “private: bool __thiscall CEyeTrackingEngine::InitializeEyeTracker(void)” (?InitializeEyeTracker@CEyeTrackingEngine@@AAE_NXZ)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_get_connected_eye_tracker referenced in function “private: bool __thiscall CEyeTrackingEngine::InitializeEyeTracker(void)” (?InitializeEyeTracker@CEyeTrackingEngine@@AAE_NXZ)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_connect_async referenced in function “private: void __thiscall CEyeTrackingEngine::BeginConnectEyeTracker(void)” (?BeginConnectEyeTracker@CEyeTrackingEngine@@AAEXXZ)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_break_event_loop referenced in function “private: void __thiscall CEyeTrackingEngine::StopEventLoop(void)” (?StopEventLoop@CEyeTrackingEngine@@AAEXXZ)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_start_tracking_async referenced in function “private: static void __cdecl CEyeTrackingEngine::OnConnectFinished(enum tobiigaze_error_code,void *)” (?OnConnectFinished@CEyeTrackingEngine@@CAXW4tobiigaze_error_code@@PAX@Z)
    1>EyeTrackingEngine.obj : error LNK2019: unresolved external symbol __imp__tobiigaze_run_event_loop referenced in function “private: static unsigned long __stdcall CEyeTrackingEngine::EventLoop(void *)” (?EventLoop@CEyeTrackingEngine@@CGKPAX@Z)
    =======================================================================
    I compared the two lib files (32 bit and 64 bit) and found that there is a difference in the name of those symbols, for example:

    Version : 0
    Machine : 14C (x86)
    TimeDateStamp: 53C78301 Thu Jul 17 04:02:09 2014
    SizeOfData : 00000037
    DLL name : TobiiGazeCore32.dll
    Symbol name : _tobiigaze_register_error_callback
    Type : code
    Name type : no prefix
    Hint : 58
    Name : tobiigaze_register_error_callback

    Version : 0
    Machine : 8664 (x64)
    TimeDateStamp: 53C782AE Thu Jul 17 04:00:46 2014
    SizeOfData : 00000036
    DLL name : TobiiGazeCore64.dll
    Symbol name : tobiigaze_register_error_callback
    Type : code
    Name type : name
    Hint : 58
    Name : tobiigaze_register_error_callback

    There is an additional underscore for the symbols in 32 bit lib file. And the 32 bit samples compile with no problem.

    Is there something I missed in setting or “TobiiGazeCore64.lib” is not correct?

    #1449
    Xuezhong Wang
    Participant

    Alright, the lib file is ok. I forget to change the build platform to x64.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.