Hi
After i built SDK successfully, i started to build a runtime distribution. so i thought if i copy some folders like bin and tmp of my previous built into new rtdist built it will save some compiling time. but it didn’t.
Now i’ve got this error at near the end of building process:
[T1] Building C++ object built_seifi/tmp/plugin_standalone_p3dEmbedMain.obj
[T2] Building C++ object built_seifi/tmp/plugin_standalone_p3dEmbed.obj
p3dEmbedMain.cxx
p3dEmbed.cxx
[T1] Building C++ object built_seifi/tmp/plugin_standalone_p3dEmbedWinMain.obj
p3dEmbedMain.cxx
[T2] Linking executable built_seifi/bin/p3dembed.exe
python27.lib(python27.dll) : error LNK2005: _PyString_AsString already defined in plugin_standalone_pystub.o
bj
python27.lib(python27.dll) : error LNK2005: _PyGILState_Release already defined in plugin_standalone_pystub.
obj
python27.lib(python27.dll) : error LNK2005: _PyUnicodeUCS2_AsWideChar already defined in plugin_standalone_p
ystub.obj
python27.lib(python27.dll) : error LNK2005: _PyUnicodeUCS2_GetSize already defined in plugin_standalone_pyst
ub.obj
python27.lib(python27.dll) : error LNK2005: _PyList_GetItem already defined in plugin_standalone_pystub.obj
python27.lib(python27.dll) : error LNK2005: _PySys_GetObject already defined in plugin_standalone_pystub.obj
python27.lib(python27.dll) : error LNK2005: _PyGILState_Ensure already defined in plugin_standalone_pystub.o
bj
python27.lib(python27.dll) : error LNK2005: _Py_IsInitialized already defined in plugin_standalone_pystub.ob
j
Creating library built_seifi/bin/p3dembed.lib and object built_seifi/bin/p3dembed.exp
built_seifi/bin/p3dembed.exe : fatal error LNK1169: one or more multiply defined symbols found
The following command returned a non-zero value: link /nologo /MACHINE:X86 /NOD:MFC90.LIB /NOD:MFC80.LIB /N
OD:LIBCMT /NOD:LIBCI.LIB /DEBUG /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls /nod:atlsd /MAP:NUL /NOD:MSVC
RTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO /OUT:built_se
ifi/bin/p3dembed.exe /LIBPATH:thirdparty/win-python/libs built_seifi/tmp/plugin_standalone_panda3dBase.obj b
uilt_seifi/tmp/plugin_standalone_p3dEmbedMain.obj built_seifi/tmp/plugin_standalone_p3dEmbed.obj built_seifi
/tmp/plugin_standalone_pystub.obj built_seifi/tmp/plugin_standalone_dtoolbase_composite1.obj built_seifi/tmp
/plugin_standalone_dtoolbase_composite2.obj built_seifi/tmp/plugin_standalone_lookup3.obj built_seifi/tmp/pl
ugin_standalone_indent.obj built_seifi/tmp/plugin_standalone_dtoolutil_composite1.obj built_seifi/tmp/plugin
_standalone_dtoolutil_composite2.obj built_seifi/tmp/plugin_standalone_prc_composite1.obj built_seifi/tmp/pl
ugin_standalone_prc_composite2.obj built_seifi/tmp/plugin_standalone_dconfig_composite1.obj built_seifi/tmp/
plugin_standalone_express_composite1.obj built_seifi/tmp/plugin_standalone_express_composite2.obj built_seif
i/tmp/plugin_standalone_downloader_composite1.obj built_seifi/tmp/plugin_standalone_downloader_composite2.ob
j built_seifi/tmp/plugin_common.obj built_seifi/tmp/libp3tinyxml.lib built_seifi/tmp/libp3d_plugin_static.li
b wsock32.lib ws2_32.lib comctl32.lib user32.lib ole32.lib shell32.lib gdi32.lib advapi32.lib msimg32.lib th
irdparty/win-libs-vc10/zlib/lib/zlibstatic.lib thirdparty/win-libs-vc10/openssl/lib/libpandassl.lib thirdpar
ty/win-libs-vc10/openssl/lib/libpandaeay.lib
Odd, I haven’t run into this error when building the rtdist myself.
Hmm, both python27.lib and plugin_standalone_pystub.obj define the symbols of the Python library. I’m guessing that python27 is linked in using some special pragma directive, so I’d suggest going to makepanda and fishing out this line: