python - Linkfejl bygger TagPy på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er en uheldig Linux-koder, der forsøger at få et af mine projekter, der arbejder i Windows 7, hvilket indebærer at bygge TagPy. Jeg bruger MSVC2008 og Python 2.7.1 (x86 version).


Jeg har installeret CMake og bygget TagLib med succes og installeret Boost Headers og Boost.Python binære fra BoostPro installatøren. Jeg har sat boost og taglib lib dirs, inkluderer dirs og lib navne, plus boost compiler, i configure.py.


Min\% bane\%,\% lib\% og\% libpath\% har katalogerne til MSVC osv. Tilføjet, som angivet af batch scriptet fra VC.


Jeg får følgende fejl på link:


C:Program Files (x86)Microsoft Visual Studio 9.0VCBINlink.exe /DLL /nologo
/INCREMENTAL:NO "/LIBPATH:C:/Program Files (x86)/taglib/lib" "/LIBPATH:C:Progra
m Files (x86)oostoost\_1\_46\_1lib" /LIBPATH:C:Python27libs /LIBPATH:C:Pyth
on27PCbuild tagd.lib boost\_python-vc90-mt-1\_46\_1.lib /EXPORT:init\_tagpy build	
emp.win32-2.7Releasesrc/wrapper/basics.obj build	emp.win32-2.7Releasesrc/wr
apper/id3.obj build	emp.win32-2.7Releasesrc/wrapper/rest.obj /OUT:buildlib.w
in32-2.7\_tagpy.pyd /IMPLIB:build	emp.win32-2.7Releasesrc/wrapper\_tagpy.lib
/MANIFESTFILE:build	emp.win32-2.7Releasesrc/wrapper\_tagpy.pyd.manifest

   Creating library build	emp.win32-2.7Releasesrc/wrapper\_tagpy.lib and obje
ct build	emp.win32-2.7Releasesrc/wrapper\_tagpy.exp

basics.obj : error LNK2019: unresolved external symbol "\_\_declspec(dllimport) pu
blic: \_\_thiscall TagLib::String::String(class std::basic\_string<wchar\_t,struct s
td::char\_traits<wchar\_t>,class std::allocator<wchar\_t> > const &,enum TagLib::St
ring::Type)" (\_\_imp\_??0String@TagLib@@QAE@ABV?$basic\_string@\_WU?$char\_traits@\_W@
std@@V?$allocator@\_W@2@@std@@W4Type@01@@Z) referenced in function "public: stati
c void \_\_cdecl boost::python::converter::implicit<class std::basic\_string<wchar\_
t,struct std::char\_traits<wchar\_t>,class std::allocator<wchar\_t> >,class TagLib:
:String>::construct(struct \_object *,struct boost::python::converter::rvalue\_fro
m\_python\_stage1\_data *)" (?construct@?$implicit@V?$basic\_string@\_WU?$char\_traits
@\_W@std@@V?$allocator@\_W@2@@std@@VString@TagLib@@@converter@python@boost@@SAXPAU
\_object@@PAUrvalue\_from\_python\_stage1\_data@234@@Z)

buildlib.win32-2.7\_tagpy.pyd : fatal error LNK1120: 1 unresolved externals


Hvad mangler jeg?


(Bemærk: Jeg havde tidligere Boost-relaterede undtagelser i de uløste eksterne også, men passerer/EHsc som et compiler flag fastgjort det.)

Bedste reference


Se dette svar, jeg tror det er det samme problem. Flag /Zc:wchar\_t- vil gå væk med den næste TagLib-udgivelse, men det er nu aktiveret i standardfilen CMakeLists.txt. ]]