1 Reply Latest reply on Jun 8, 2009 12:31 PM by NoAngel

    [SOLVED]Linker errors (unresolved external symbol ...)

    NoAngel
      MSVS 2008 SP1, trying to build brook samples

      I have following errors when building samples from ATI Brook folder (for example, for hello_brook project):

      1>------ Build started: Project: hello_brook, Configuration: Release Win32 ------
      1>Performing Custom Build Step
      1>Compiling...
      1>Timer.cpp
      1>common.cpp
      1>hello_brook.cpp
      1>Generating Code...
      1>Linking...
      1>   Creating library ..\..\..\..\samples\bin\legacy\xp_x86_32\\hello_brook.lib and object ..\..\..\..\samples\bin\legacy\xp_x86_32\\hello_brook.exp
      1>hello_brook.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall brt::StreamInterface::readItem(void *,unsigned int *)" (?readItem@StreamInterface@brt@@UAEXPAXPAI@Z)
      1>hello_brook.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall brt::StreamInterface::fetchItemPtr(void *,unsigned int *)" (?fetchItemPtr@StreamInterface@brt@@UAEPAXPAXPAI@Z)
      1>hello_brook.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall brt::StreamInterface::getIndexedFieldRenderData(unsigned int)" (?getIndexedFieldRenderData@StreamInterface@brt@@UAEPAXI@Z)
      1>hello_brook.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall brt::StreamInterface::synchronizeRenderData(void)" (?synchronizeRenderData@StreamInterface@brt@@UAEXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::Kernel::~Kernel(void)" (??1Kernel@brook@@QAE@XZ) referenced in function "public: void __thiscall __hello_brook_check::operator()(class brook::Stream const &,class brook::Stream const &,float)" (??R__hello_brook_check@@QAEXABV?$Stream@M@brook@@0M@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::Kernel::run(struct brook::ArgumentInfo *)const " (?run@Kernel@brook@@QBEXPAUArgumentInfo@2@@Z) referenced in function "public: void __thiscall __hello_brook_check::operator()(class brook::Stream const &,class brook::Stream const &,float)" (??R__hello_brook_check@@QAEXABV?$Stream@M@brook@@0M@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::Kernel::PushConstant(class ConstImpl *)" (?PushConstant@Kernel@brook@@QAEXPAVConstImpl@@@Z) referenced in function "public: void __thiscall __hello_brook_check::operator()(class brook::Stream const &,class brook::Stream const &,float)" (??R__hello_brook_check@@QAEXABV?$Stream@M@brook@@0M@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::Kernel::PushOutput(class StreamImpl *)" (?PushOutput@Kernel@brook@@QAEXPAVStreamImpl@@@Z) referenced in function "public: void __thiscall __hello_brook_check::operator()(class brook::Stream const &,class brook::Stream const &,float)" (??R__hello_brook_check@@QAEXABV?$Stream@M@brook@@0M@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::Kernel::PushStream(class StreamImpl *)" (?PushStream@Kernel@brook@@QAEXPAVStreamImpl@@@Z) referenced in function "public: void __thiscall __hello_brook_check::operator()(class brook::Stream const &,class brook::Stream const &,float)" (??R__hello_brook_check@@QAEXABV?$Stream@M@brook@@0M@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::Kernel::Kernel(void const * * const,enum brook::KernelType)" (??0Kernel@brook@@QAE@QAPBXW4KernelType@1@@Z) referenced in function "public: void __thiscall __hello_brook_check::operator()(class brook::Stream const &,class brook::Stream const &,float)" (??R__hello_brook_check@@QAEXABV?$Stream@M@brook@@0M@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::Kernel::PushReduceStream(class StreamImpl *)" (?PushReduceStream@Kernel@brook@@QAEXPAVStreamImpl@@@Z) referenced in function "public: void __thiscall __hello_brook_sum::operator()(class brook::Stream const &,class brook::Stream const &)" (??R__hello_brook_sum@@QAEXABV?$Stream@M@brook@@0@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::Kernel::PushReduce(class StreamImpl *)" (?PushReduce@Kernel@brook@@QAEXPAVStreamImpl@@@Z) referenced in function "public: void __thiscall __hello_brook_sum::operator()(class brook::Stream const &,float &)" (??R__hello_brook_sum@@QAEXABV?$Stream@M@brook@@AAM@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::StreamData::StreamData(class StreamImpl *)" (??0StreamData@brook@@QAE@PAVStreamImpl@@@Z) referenced in function "public: __thiscall brook::Stream::Stream(class brook::Stream const &)" (??0?$Stream@M@brook@@QAE@ABV01@@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class StreamImpl * __thiscall brook::SystemRT::createStreamImpl(unsigned short,unsigned int *,enum brook::BRformat *,unsigned int)" (?createStreamImpl@SystemRT@brook@@QAEPAVStreamImpl@@GPAIPAW4BRformat@2@I@Z) referenced in function "public: __thiscall brook::Stream::Stream(unsigned short,unsigned int *)" (??0?$Stream@M@brook@@QAE@GPAI@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: static class brook::SystemRT * __cdecl brook::SystemRT::getInstance(void)" (?getInstance@SystemRT@brook@@SAPAV12@XZ) referenced in function "public: __thiscall brook::Stream::Stream(unsigned short,unsigned int *)" (??0?$Stream@M@brook@@QAE@GPAI@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::StreamData::write(void *,char const *)const " (?write@StreamData@brook@@QBEXPAXPBD@Z) referenced in function "public: void __thiscall brook::Stream::write(void *,char const *)const " (?write@?$Stream@M@brook@@QBEXPAXPBD@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class StreamImpl * __thiscall brook::StreamData::getImplObject(void)const " (?getImplObject@StreamData@brook@@QBEPAVStreamImpl@@XZ) referenced in function "public: __thiscall brook::Stream::operator class StreamImpl *(void)const " (??B?$Stream@M@brook@@QBEPAVStreamImpl@@XZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::ConstData::ConstData(void *,enum brook::BRformat,class BaseDevice *,unsigned int)" (??0ConstData@brook@@QAE@PAXW4BRformat@1@PAVBaseDevice@@I@Z) referenced in function "public: __thiscall brook::Constant::Constant(float const &)" (??0?$Constant@M@brook@@QAE@ABM@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class ConstImpl * __thiscall brook::ConstData::getImplObject(void)const " (?getImplObject@ConstData@brook@@QBEPAVConstImpl@@XZ) referenced in function "public: __thiscall brook::Constant::operator class ConstImpl *(void)const " (??B?$Constant@M@brook@@QBEPAVConstImpl@@XZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::StreamData::~StreamData(void)" (??1StreamData@brook@@QAE@XZ) referenced in function "public: void * __thiscall brook::StreamData::`scalar deleting destructor'(unsigned int)" (??_GStreamData@brook@@QAEPAXI@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::ConstData::~ConstData(void)" (??1ConstData@brook@@QAE@XZ) referenced in function "public: void * __thiscall brook::ConstData::`scalar deleting destructor'(unsigned int)" (??_GConstData@brook@@QAEPAXI@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: void __thiscall brook::StreamData::read(void const *,char const *)" (?read@StreamData@brook@@QAEXPBXPBD@Z) referenced in function "public: void __thiscall brook::Stream::read(void const *,char const *)" (?read@?$Stream@M@brook@@QAEXPBXPBD@Z)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::Pass::~Pass(void)" (??1Pass@brook@@QAE@XZ) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::Technique::~Technique(void)" (??1Technique@brook@@QAE@XZ) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::KernelDesc::~KernelDesc(void)" (??1KernelDesc@brook@@QAE@XZ) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::KernelDesc::KernelDesc(class brook::KernelDesc const &)" (??0KernelDesc@brook@@QAE@ABV01@@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::KernelDesc & __thiscall brook::KernelDesc::technique(class brook::Technique &)" (?technique@KernelDesc@brook@@QAEAAV12@AAVTechnique@2@@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::KernelDesc::KernelDesc(void)" (??0KernelDesc@brook@@QAE@XZ) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::Technique & __thiscall brook::Technique::pass(class brook::Pass &)" (?pass@Technique@brook@@QAEAAV12@AAVPass@2@@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::Technique & __thiscall brook::Technique::addressTranslation(void)" (?addressTranslation@Technique@brook@@QAEAAV12@XZ) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::Technique::Technique(void)" (??0Technique@brook@@QAE@XZ) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::Pass & __thiscall brook::Pass::output(int,int,enum brook::AccessType)" (?output@Pass@brook@@QAEAAV12@HHW4AccessType@2@@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::Pass & __thiscall brook::Pass::input(int,int,enum brook::AccessType)" (?input@Pass@brook@@QAEAAV12@HHW4AccessType@2@@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::Pass & __thiscall brook::Pass::constant(int,enum brook::ConstUsage)" (?constant@Pass@brook@@QAEAAV12@HW4ConstUsage@2@@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: class brook::Pass & __thiscall brook::Pass::image(char const *)" (?image@Pass@brook@@QAEAAV12@PBD@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>hello_brook.obj : error LNK2019: unresolved external symbol "public: __thiscall brook::Pass::Pass(char const *)" (??0Pass@brook@@QAE@PBD@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for '__hello_brook_check_cal_desc''(void)" (??__E__hello_brook_check_cal_desc@?A0x907f34e6@@YAXXZ)
      1>..\..\..\..\samples\bin\legacy\xp_x86_32\\hello_brook.exe : fatal error LNK1120: 36 unresolved externals
      1>Build log was saved at "file://e:\Downloads\samples\legacy\apps\hello_brook\built\xp_x86_32\BuildLog.htm"
      1>hello_brook - 37 error(s), 0 warning(s)
      ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

      cl /?

      Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
      Copyright (C) Microsoft Corporation.  All rights reserved.

       

      set

       

      ALLUSERSPROFILE=C:\ProgramData
      APPDATA=C:\Users\User\AppData\Roaming
      BROOKROOT=C:\Program Files (x86)\ATI\ATI Brook+ 1.4.0_beta\
      CALROOT=C:\Program Files (x86)\ATI\ATI CAL 1.4.0_beta\
      CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
      CommonProgramFiles=C:\Program Files\Common Files
      CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
      CommonProgramW6432=C:\Program Files\Common Files
      COMPUTERNAME=NOANGELD
      ComSpec=C:\Windows\system32\cmd.exe
      CUDA_BIN_PATH=C:\CUDA\bin
      CUDA_INC_PATH=C:\CUDA\include
      CUDA_LIB_PATH=C:\CUDA\lib
      DXSDK_DIR=C:\Program Files (x86)\Microsoft DirectX SDK (November 2008)\
      FP_NO_HOST_CHECK=NO
      Framework35Version=v3.5
      FrameworkDir=C:\Windows\Microsoft.NET\Framework64
      FrameworkVersion=v2.0.50727
      HOMEDRIVE=C:
      HOMEPATH=\Users\User
      INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ATLMFC\INCLUDE;C:\
      Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE;C:\Program Files\Micr
      osoft SDKs\Windows\v7.0\include;
      LIB=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB\amd64;C:\Pr
      ogram Files (x86)\Microsoft Visual Studio 9.0\VC\LIB\amd64;C:\Program Files\Micr
      osoft SDKs\Windows\v7.0\lib\x64;
      LIBPATH=C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Frame
      work64\v2.0.50727;C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft
      .NET\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\V
      C\ATLMFC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\LIB\amd
      64;
      LOCALAPPDATA=C:\Users\User\AppData\Local
      LOGONSERVER=\\NOANGELD
      NUMBER_OF_PROCESSORS=8
      NVSDKCUDA_ROOT=C:\CUDA\SDK
      OS=Windows_NT
      Path=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64;C:\Windows\
      Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Framework64\v3.5\Microso
      ft .NET Framework 3.5 (Pre-Release Version);C:\Windows\Microsoft.NET\Framework64
      \v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCPackages;C:\
      Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files (x8
      6)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Program Files (x86)\Microsoft Vi
      sual Studio 9.0\Common7\Tools\bin;C:\Program Files\Microsoft SDKs\Windows\v7.0\b
      in\x64;C:\Program Files\Microsoft SDKs\Windows\v7.0\bin\win64\x64;C:\Program Fil
      es\Microsoft SDKs\Windows\v7.0\bin;C:\Program Files (x86)\ATI\ATI Brook+ 1.4.0_b
      eta\sdk\lib;C:\Program Files (x86)\ATI\ATI CAL 1.4.0_beta\lib\lh64;C:\Program Fi
      les (x86)\ATI\ATI CAL 1.4.0_beta\lib\lh32;C:\Windows\system32;C:\Windows;C:\Wind
      ows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (
      x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\QuickTime\QTSys
      tem\;C:\CUDA\bin
      PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
      PROCESSOR_ARCHITECTURE=AMD64
      PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 26 Stepping 4, GenuineIntel
      PROCESSOR_LEVEL=6
      PROCESSOR_REVISION=1a04
      ProgramData=C:\ProgramData
      ProgramFiles=C:\Program Files
      ProgramFiles(x86)=C:\Program Files (x86)
      ProgramW6432=C:\Program Files
      PROMPT=$P$G
      PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
      PUBLIC=C:\Users\Public
      QTJAVA=C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
      SESSIONNAME=Console
      SystemDrive=C:
      SystemRoot=C:\Windows
      TEMP=C:\Windows\TEMP
      TMP=C:\Windows\TEMP
      USERDOMAIN=NoangelD
      USERNAME=User
      USERPROFILE=C:\Users\User
      VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
      VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\
      VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0
      windir=C:\Windows
      WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v7.0\

      cl parameters:

      1>cl /I "." /I "C:\Program Files (x86)\ATI\ATI Brook+ 1.4.0_beta\\sdk\include\\" /I "..\..\common" /D "_CRT_SECURE_NO_DEPRECATE" /FD /EHsc /MD /Fo"built\xp_x86_32\\" /Fd"built\xp_x86_32\\vc90.pdb" /c /TP ..\..\common\Timer.cpp

      linker parameters:

      1>"/OUT:..\..\..\..\samples\bin\legacy\xp_x86_32\\hello_brook.exe" "/LIBPATH:." "/LIBPATH:C:\Program Files (x86)\ATI\ATI Brook+ 1.4.0_beta\\sdk\lib" /MANIFEST "/MANIFESTFILE:built\xp_x86_32\\hello_brook.exe.intermediate.manifest" "/MANIFESTUAC:level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO "C:\Program Files (x86)\ATI\ATI Brook+ 1.4.0_beta\sdk\lib\brook.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

      How can I resolve problem?