Issue created - https://github.com/google/protobuf/issues/721


On Monday, 17 August 2015 14:57:32 UTC+10, Dave Hirschfeld wrote:
>
>
> On Monday, 17 August 2015 14:01:40 UTC+10, Feng Xiao wrote:
>>
>> On Sun, Aug 16, 2015 at 8:47 PM, Dave Hirschfeld <nov...@gmail.com> 
>> wrote:
>>
>>> Trying to build the python package from the latest master on Windows 
>>> with msvc I'm getting link errors shown below. Just want  to check if this 
>>> is this a known  problem with the current master? Builds from a couple of 
>>> weeks ago worked.
>>>
>> We don't yet have test to cover python C++ extension build on Windows, so 
>> it might be broken without notice (or maybe it doesn't work from the 
>>  beginning..). Feel free to submit an issue for this, or better help send 
>> us a patch to fix the issue :)
>>  
>>
>>>
>>> Thanks,
>>> Dave
>>>
>>>
>>> C:\Program Files (x86)\Microsoft Visual Studio 
>>> 12.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO 
>>> /LIBPATH:C:\Anaconda3\conda-bld\work\cmake\Release 
>>> /LIBPATH:C:\Anaconda3\envs\_build\libs 
>>> /LIBPATH:C:\Anaconda3\envs\_build\PCbuild\amd64 libprotobuf.lib 
>>> /EXPORT:init_message 
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\descriptor.obj 
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\descriptor_containers.obj
>>>  
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\descriptor_pool.obj 
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\extension_dict.obj 
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\message.obj 
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\message_map_container.obj
>>>  
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\repeated_composite_container.obj
>>>  
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\repeated_scalar_container.obj
>>>  
>>> build\temp.win-amd64-2.7\Release\google/protobuf/pyext\scalar_map_container.obj
>>>  
>>> /OUT:build\lib.win-amd64-2.7\google\protobuf\pyext\_message.pyd 
>>> /IMPLIB:build\temp.win-amd64-2.7\Release\google/protobuf/pyext\_message.lib 
>>> /MANIFESTFILE:build\temp.win-amd64-2.7\Release\google/protobuf/pyext\_message.pyd.manifest
>>>
>>> <snip> 
>
>>
>>> repeated_composite_container.obj : error LNK2001: unresolved external 
>>> symbol "int __cdecl google::protobuf::internal::Barrier_AtomicIncrement(int 
>>> volatile *,int)" 
>>> (?Barrier_AtomicIncrement@internal@protobuf@google@@YAHPECHH@Z)
>>>
>>> build\lib.win-amd64-2.7\google\protobuf\pyext\_message.pyd : fatal error 
>>> LNK1120: 4 unresolved externals
>>> error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 
>>> 12.0\\VC\\BIN\\amd64\\link.exe' failed with exit status 1120
>>>
>>>
>>>
>
> The above error was a red-herring. The original error I got was a bunch of 
> LNK2038 errors like below:
> <snip>
> libprotobuf.lib(coded_stream.obj) : error LNK2038: mismatch detected for 
> 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 
> 'MD_DynamicRelease' in descriptor.obj
>
> libprotobuf.lib(message_lite.obj) : error LNK2038: mismatch detected for 
> 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 
> 'MD_DynamicRelease' in descriptor.obj
> <snip>
>
> In attempting to fix the problem by changing cmake to build shared libs I 
> got the LNK1120 "unresolved externals" errors.
>
> It appears that the original LNK2038 MT/MD errors are because of the below 
> commit:
>
>
> https://github.com/google/protobuf/commit/1858ac9b42c167ab6d89b929c075872d740eb0b5
>
> Simply reverting that commit allows the python build to proceed.
>
> I'd send a patch to revert it but it was obviously made for some reason. 
> As it is it doesn't appear to be compatible with building the python 
> extension and I'm not sure how to fix that (or even if it's possible). 
>
> To get my conda package to  build I'm currently just reverting that 
> change. The resulting package can be installed (for py27/py3.4) from my 
> anaconda.org  channel:
>
> conda  install -c dhirschfeld protobuf
>
> Regards,
> Dave
>
>
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to