Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > проблема с компиляцией


Автор: AlekXL 16.12.2010, 10:33
пытаюсь скомпилить проект dll и получаю lnk2005
Код

       E:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:NONE /OUT:"Release2005\mvtools.dll" /INCREMENTAL:NO /NOLOGO h:\devsoft\lab\MVTOOLS\Sources\Release2005\CopyCode_mmx.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\Bilinear.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\x86inc.obj "h:\devsoft\lab\MVTOOLS\Sources\Release2005\x86inc-32.obj" h:\devsoft\lab\MVTOOLS\Sources\Release2005\Variance_iSSE.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\SAD_iSSE.obj "h:\devsoft\lab\MVTOOLS\Sources\Release2005\sad-a.obj" "h:\devsoft\lab\MVTOOLS\Sources\Release2005\pixel-a.obj" "h:\devsoft\lab\MVTOOLS\Sources\Release2005\pixel-32.obj" h:\devsoft\lab\MVTOOLS\Sources\Release2005\Overlap_mmx.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\fdct_mmx.obj "h:\devsoft\lab\MVTOOLS\Sources\Release2005\cpu-32.obj" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST:NO /PDB:".\Release2005\mvtools.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Release2005\mvtools.lib" /MACHINE:X86 /DLL Release2005\mvtools.res
         .\Release2005\CopyCode.obj
         .\Release2005\cpu.obj
         .\Release2005\dctfftw.obj
         .\Release2005\dctint.obj
         .\Release2005\FakeBlockData.obj
         .\Release2005\FakeGroupOfPlanes.obj
         .\Release2005\FakePlaneOfBlocks.obj
         .\Release2005\GroupOfPlanes.obj
         .\Release2005\Interface.obj
         .\Release2005\Interpolation.obj
         .\Release2005\MaskFun.obj
         .\Release2005\MVAnalyse.obj
         .\Release2005\MVBlockFps.obj
         .\Release2005\MVClip.obj
         .\Release2005\MVClipArray.obj
         .\Release2005\MVCompensate.obj
         .\Release2005\MVDegrain1.obj
         .\Release2005\MVDegrain2.obj
         .\Release2005\MVDegrain3.obj
         .\Release2005\MVDepan.obj
         .\Release2005\MVFilter.obj
         .\Release2005\MVFinest.obj
         .\Release2005\MVFlow.obj
         .\Release2005\MVFlowBlur.obj
         .\Release2005\MVFlowFps.obj
         .\Release2005\MVFlowInter.obj
         .\Release2005\MVFrame.obj
         .\Release2005\MVMask.obj
         .\Release2005\MVRecalculate.obj
         .\Release2005\MVSCDetection.obj
         .\Release2005\MVShow.obj
         .\Release2005\MVSuper.obj
         .\Release2005\overlap.obj
         .\Release2005\Padding.obj
         .\Release2005\PlaneOfBlocks.obj
         .\Release2005\SADFunctions.obj
         .\Release2005\SimpleResize.obj
         .\Release2005\Variance.obj
         .\Release2005\yuy2planes.obj /FORCE:MULTIPLE 
            Creating library Release2005\mvtools.lib and object Release2005\mvtools.exp
         E:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:NONE /OUT:"Release2005\mvtools.dll" /INCREMENTAL:NO /NOLOGO h:\devsoft\lab\MVTOOLS\Sources\Release2005\CopyCode_mmx.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\Bilinear.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\x86inc.obj "h:\devsoft\lab\MVTOOLS\Sources\Release2005\x86inc-32.obj" h:\devsoft\lab\MVTOOLS\Sources\Release2005\Variance_iSSE.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\SAD_iSSE.obj "h:\devsoft\lab\MVTOOLS\Sources\Release2005\sad-a.obj" "h:\devsoft\lab\MVTOOLS\Sources\Release2005\pixel-a.obj" "h:\devsoft\lab\MVTOOLS\Sources\Release2005\pixel-32.obj" h:\devsoft\lab\MVTOOLS\Sources\Release2005\Overlap_mmx.obj h:\devsoft\lab\MVTOOLS\Sources\Release2005\fdct_mmx.obj "h:\devsoft\lab\MVTOOLS\Sources\Release2005\cpu-32.obj" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST:NO /PDB:".\Release2005\mvtools.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Release2005\mvtools.lib" /MACHINE:X86 /DLL Release2005\Bilinear.obj
         Release2005\CopyCode_mmx.obj -DPREFIX -DPREFIX
     1>LINK : warning LNK4044: unrecognized option '/DPREFIX'; ignored
     1>LINK : warning LNK4044: unrecognized option '/DPREFIX'; ignored
     1>Bilinear.obj : error LNK2005: _VerticalBilin_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _HorizontalBilin_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _DiagonalBilin_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2F_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _VerticalWiener_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _HorizontalWiener_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _VerticalBicubic_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _HorizontalBicubic_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _Average2_iSSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2CubicHorizontalInplaceLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2QuadraticHorizontalInplaceLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2CubicVerticalLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2QuadraticVerticalLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2BilinearFilteredVerticalLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2BilinearFilteredHorizontalInplaceLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2FilteredVerticalLine_SSE already defined in Bilinear.obj
     1>Bilinear.obj : error LNK2005: _RB2FilteredHorizontalInplaceLine_SSE already defined in Bilinear.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy32x32_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy16x32_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy32x16_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy16x16_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy8x8_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy4x4_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy2x2_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy4x8_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy8x16_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy4x2_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy8x4_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy16x8_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy2x4_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy16x2_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy8x2_mmx already defined in CopyCode_mmx.obj
     1>CopyCode_mmx.obj : error LNK2005: _Copy8x1_mmx already defined in CopyCode_mmx.obj
     1>LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
     1>Release2005\mvtools.dll : fatal error LNK1120: 1 unresolved externals
     1>Done Building Project "H:\devsoft\lab\MVTOOLS\Sources\mvtools_2005.vcxproj" (build target(s)) -- FAILED.


компилятор (VS2010 sp1b) ругается на пару скомпиленных yasm файлов Bilinear.asm & CopyCode_mmx.asm, будто бы они дважды включаются в проект, хотя судя по логу - только один раз. Они включаются в Additional Dependencies.
Подскажите...

Автор: xvr 16.12.2010, 10:47
Судя по логу - дважды. Один раз в начале списка, второй раз - в конце командной строки, после /MACHINE:X86 /DLL
Цитата(AlekXL @  16.12.2010,  10:33 Найти цитируемый пост)
Они включаются в Additional Dependencies.
Уберите их оттуда, судя по всему VS их включила сама (они в проекте включены?)


Автор: AlekXL 16.12.2010, 10:57
да. Проблема была в кривой интеграции yasm в студию, конкретно не включались в билд obj файлы, полученные из  yasm custom build. Включал их вручную, но видно msbuild чего-то не так понял . Поправил yasm.targets по аналогии с masm.targets, вроде заработало

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)