boostorg / python

Boost.org python module
http://boostorg.github.io/python
Boost Software License 1.0
468 stars 201 forks source link

Boost\libs\python failed to build due to link error on MSVC #357

Open QuellaZhang opened 3 years ago

QuellaZhang commented 3 years ago

Issue description: Boost\libs\python failed to build due to link error on MSVC. Could you please take a look?

Build step:

  1. git clone -c core.autocrlf=true --recursive ​https://github.com/boostorg/boost.git D:\Boost\src
  2. open a VS 2019 x64 command prompt and browse to D:\Boost\src
  3. .\bootstrap
  4. .\b2 headers variant=release --build-dir=..\out\x64rel address-model=64
  5. .\b2 variant=release --build-dir=..\out\x64rel address-model=64
  6. .\b2 -j4 variant=release --build-dir=..\out\x64rel libs\python\test

Error info: F:\gitP\boostorg\boost\linkrepro>link @link.rsp Creating library .\builtin_converters_ext.lib and object .\builtin_converters_ext.exp builtin_converters.obj : error LNK2001: unresolved external symbol std_terminate builtin_converters.obj : error LNK2019: unresolved external symbol impinvalid_parameter_noinfo_noreturn referenced in function "void * __cdecl std::_Allocate_manually_vector_aligned(unsigned int64)" (??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z) builtin_converters.obj : error LNK2019: unresolved external symbol std_exception_copy referenced in function "public: cdecl std::bad_alloc::bad_alloc(class std::bad_alloc const &)" (??0bad_alloc@std@@QEAA@AEBV01@@Z) MSVCRT.lib(throw_bad_alloc.obj) : error LNK2001: unresolved external symbol std_exception_copy builtin_converters.obj : error LNK2019: unresolved external symbol std_exception_destroy referenced in function "public: virtual cdecl std::bad_array_new_length::~bad_array_new_length(void)" (??1bad_array_new_length@std@@UEAA@XZ) MSVCRT.lib(throw_bad_alloc.obj) : error LNK2001: unresolved external symbol std_exception_destroy builtin_converters.obj : error LNK2019: unresolved external symbol std_type_info_name referenced in function "struct boost::python::detail::signature_element const * cdecl boost::python::detail::get_ret<struct boost::python::default_call_policies,struct boost::mpl::vector1 >(void)" (??$get_ret@Udefault_call_policies@python@boost@@U?$vector1@H@mpl@3@@detail@python@boost@@YAPEBUsignature_element@012@XZ) builtin_converters.obj : error LNK2019: unresolved external symbol _CxxThrowException referenced in function "void cdecl std::_Throw_bad_array_new_length(void)" (?_Throw_bad_array_new_length@std@@YAXXZ) MSVCRT.lib(throw_bad_alloc.obj) : error LNK2001: unresolved external symbol _CxxThrowException builtin_converters.obj : error LNK2001: unresolved external symbol CxxFrameHandler4 MSVCRT.lib(gshandlereh4.obj) : error LNK2001: unresolved external symbol CxxFrameHandler4 builtin_converters.obj : error LNK2019: unresolved external symbol memcpy referenced in function "public: cdecl std::basic_string<char,struct std::char_traits,class std::allocator >::basic_string<char,struct std::char_traits,class std::allocator >(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z) MSVCRT.lib(new_scalar.obj) : error LNK2019: unresolved external symbol _callnewh referenced in function "void * cdecl operator new(unsigned int64)" (??2@YAPEAX_K@Z) MSVCRT.lib(new_scalar.obj) : error LNK2019: unresolved external symbol malloc referenced in function "void * cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol vcrt_initialize referenced in function scrt_initialize_crt MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol vcrt_uninitialize referenced in function scrt_initialize_crt MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol vcrt_uninitialize_critical referenced in function scrt_dllmain_uninitialize_critical MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol vcrt_thread_attach referenced in function scrt_dllmain_crt_thread_attach MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol vcrt_thread_detach referenced in function scrt_dllmain_crt_thread_attach MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _seh_filter_dll referenced in function scrt_dllmain_exception_filter MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _is_c_termination_complete referenced in function scrt_dllmain_uninitialize_c MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _configure_narrow_argv referenced in function "public: static int cdecl scrt_narrow_argv_policy::configure_argv(void)" (?configure_argv@scrt_narrow_argv_policy@@SAHXZ) MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _initialize_narrow_environment referenced in function "public: static int cdecl __scrt_narrow_environment_policy::initialize_environment(void)" (?initialize_environment@scrt_narrow_environment_policy@@SAHXZ) MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _initialize_onexit_table referenced in function scrt_initialize_onexit_tables MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _register_onexit_function referenced in function _onexit MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _execute_onexit_table referenced in function scrt_dllmain_uninitialize_c MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _crt_atexit referenced in function _onexit MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _crt_at_quick_exit referenced in function at_quick_exit MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol acrt_initialize referenced in function scrt_initialize_crt MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol acrt_uninitialize referenced in function scrt_uninitialize_crt MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol acrt_uninitialize_critical referenced in function scrt_dllmain_uninitialize_critical MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol acrt_thread_attach referenced in function scrt_dllmain_crt_thread_attach MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol acrt_thread_detach referenced in function scrt_dllmain_crt_thread_detach MSVCRT.lib(utility.obj) : error LNK2019: unresolved external symbol _cexit referenced in function scrt_dllmain_uninitialize_c MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol C_specific_handler MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_CloseHandle referenced in function "void cdecl scrt_uninitialize_thread_safe_statics(void)" (?scrt_uninitialize_thread_safe_statics@@YAXXZ) MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_EnterCriticalSection referenced in function _Init_thread_abort MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_LeaveCriticalSection referenced in function _Init_thread_abort MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_InitializeCriticalSectionAndSpinCount referenced in function "int cdecl scrt_initialize_thread_safe_statics(void)" (?scrt_initialize_thread_safe_statics@@YAHXZ) MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_DeleteCriticalSection referenced in function "void cdecl scrt_uninitialize_thread_safe_statics(void)" (?scrt_uninitialize_thread_safe_statics@@YAXXZ) MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_SetEvent referenced in function _Init_thread_notify MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_ResetEvent referenced in function _Init_thread_notify MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_WaitForSingleObjectEx referenced in function _Init_thread_wait MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_CreateEventW referenced in function "int cdecl scrt_initialize_thread_safe_statics(void)" (?scrt_initialize_thread_safe_statics@@YAHXZ) MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_GetModuleHandleW referenced in function "int cdecl scrt_initialize_thread_safe_statics(void)" (?scrt_initialize_thread_safe_statics@@YAHXZ) MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __imp_GetModuleHandleW MSVCRT.lib(thread_safe_statics.obj) : error LNK2019: unresolved external symbol imp_GetProcAddress referenced in function "int cdecl scrt_initialize_thread_safe_statics(void)" (?scrt_initialize_thread_safe_statics@@YAHXZ) MSVCRT.lib(tncleanup.obj) : error LNK2019: unresolved external symbol imp_InitializeSListHead referenced in function "void cdecl scrt_initialize_type_info(void)" (?scrt_initialize_type_info@@YAXXZ) MSVCRT.lib(tncleanup.obj) : error LNK2019: unresolved external symbol std_type_info_destroy_list referenced in function "void cdecl __scrt_uninitialize_type_info(void)" (?scrt_uninitialize_type_info@@YAXXZ) MSVCRT.lib(delete_scalar.obj) : error LNK2019: unresolved external symbol free referenced in function "void cdecl operator delete(void *)" (??3@YAXPEAX@Z) MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol __imp_RtlCaptureContext referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2001: unresolved external symbol imp_RtlCaptureContext MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol imp_RtlLookupFunctionEntry referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2001: unresolved external symbol imp_RtlLookupFunctionEntry MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol imp_RtlVirtualUnwind referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2001: unresolved external symbol imp_RtlVirtualUnwind MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol __imp_IsDebuggerPresent referenced in function scrt_fastfail MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol imp_UnhandledExceptionFilter referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2001: unresolved external symbol imp_UnhandledExceptionFilter MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol __imp_SetUnhandledExceptionFilter referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2001: unresolved external symbol imp_SetUnhandledExceptionFilter MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol imp_GetStartupInfoW referenced in function scrt_get_show_window_mode MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol __imp_IsProcessorFeaturePresent referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2001: unresolved external symbol imp_IsProcessorFeaturePresent MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol terminate referenced in function scrt_unhandled_exception_filter MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol current_exception referenced in function scrt_unhandled_exception_filter MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol current_exception_context referenced in function scrt_unhandled_exception_filter MSVCRT.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol memset referenced in function scrt_fastfail MSVCRT.lib(gs_report.obj) : error LNK2019: unresolved external symbol __imp_GetCurrentProcess referenced in function raise_securityfailure MSVCRT.lib(gs_report.obj) : error LNK2019: unresolved external symbol __imp_TerminateProcess referenced in function __raise_securityfailure .\builtin_converters_ext.pyd : fatal error LNK1120: 59 unresolved externals

stefanseefeld commented 3 years ago

The missing symbols appear to be coming at least in part from the C++ standard library. Please ask on the main boost mailing list, or on the Boost.Build project, as this is a build configuration issue.