使用VS2012的Boost :: python 1.55.0有更少的方法需要

时间:2014-04-01 11:25:48

标签: python c++ visual-studio-2012 boost

我下载了boost 1.55.0。来自boost website

我的Visual Studio版本是11.0.50727.1。

  1. 打开VS2012 x86本机工具命令提示符。
  2. cd
  3. bootstrap.bat

  4. b2.exe 编译完成后,控制台写道,一切顺利,我可以在\ stage \ lib中找到库

  5. 我找到了他们。
  6. 我使用lib2def从libboost_python-vc110-mt-1_55.lib中查找导出函数。
  7. 结果列表:

    LIBRARY libboost_python-vc110-mt-1_55
    
    EXPORTS
    "__CT??_R0?AU?$error_info_injector@Vbad_function_call@boost@@@exception_detail@boost@@@8??0?$error_info_injector@Vbad_function_call@boost@@@exception_detail@boost@@QAE@ABU012@@Z32"
    "__CT??_R0?AUerror_already_set@python@boost@@@8??0error_already_set@python@boost@@QAE@ABU012@@Z4"
    "__CT??_R0?AV?$clone_impl@U?$error_info_injector@Vbad_function_call@boost@@@exception_detail@boost@@@exception_detail@boost@@@8??0?$clone_impl@U?$error_info_injector@Vbad_function_call@boost@@@exception_detail@boost@@@exception_detail@boost@@QAE@ABV012@@Z44"
    "__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12"
    "__CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QAE@ABV01@@Z12"
    "__CT??_R0?AVbad_function_call@boost@@@8??0bad_function_call@boost@@QAE@ABV01@@Z12"
    "__CT??_R0?AVbad_numeric_cast@numeric@boost@@@8??0bad_numeric_cast@numeric@boost@@QAE@ABV012@@Z12"
    "__CT??_R0?AVclone_base@exception_detail@boost@@@8??0clone_base@exception_detail@boost@@QAE@ABV012@@Z40324"
    "__CT??_R0?AVexception@boost@@@8??0exception@boost@@QAE@ABV01@@Z2012"
    "__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12"
    "__CT??_R0?AVinvalid_argument@std@@@8??0invalid_argument@std@@QAE@ABV01@@Z12"
    "__CT??_R0?AVlogic_error@std@@@8??0logic_error@std@@QAE@ABV01@@Z12"
    "__CT??_R0?AVnegative_overflow@numeric@boost@@@8??0negative_overflow@numeric@boost@@QAE@ABV012@@Z12"
    "__CT??_R0?AVpositive_overflow@numeric@boost@@@8??0positive_overflow@numeric@boost@@QAE@ABV012@@Z12"
    "__CT??_R0?AVrange_error@std@@@8??0range_error@std@@QAE@ABV01@@Z12"
    "__CT??_R0?AVruntime_error@std@@@8??0runtime_error@std@@QAE@ABV01@@Z12"
    "__CTA1?AUerror_already_set@python@boost@@"
    "__CTA2?AVbad_alloc@std@@"
    "__CTA3?AVinvalid_argument@std@@"
    "__CTA3?AVrange_error@std@@"
    "__CTA4?AVnegative_overflow@numeric@boost@@"
    "__CTA4?AVpositive_overflow@numeric@boost@@"
    "__CTA7?AV?$clone_impl@U?$error_info_injector@Vbad_function_call@boost@@@exception_detail@boost@@@exception_detail@boost@@"
    "__TI1?AUerror_already_set@python@boost@@"
    "__TI2?AVbad_alloc@std@@"
    "__TI3?AVinvalid_argument@std@@"
    "__TI3?AVrange_error@std@@"
    "__TI4?AVnegative_overflow@numeric@boost@@"
    "__TI4?AVpositive_overflow@numeric@boost@@"
    "__TI7?AV?$clone_impl@U?$error_info_injector@Vbad_function_call@boost@@@exception_detail@boost@@@exception_detail@boost@@"
    "encode_string_unaryfunc"
    "identity_unaryfunc"
    "no_init"
    "wmemcpy"
    "wmemmove"
    "wmemset"
    

    我需要这个库中的所有boost :: python函数,我该如何解决?

    UPDATE:

    我不知道为什么,也许这是问题,但VS2012正试图加载" boost_python-vc110-mt-gd-1_55.lib" (如果我没有这样的文件,我有链接器错误)。如何命令它不链接动态而不是静态?如何命令我的项目使用静态库? 我的项目中没有任何关于应该采用哪个库的设置,即提升自动链接功能......

    更新2:

    我找到了解决方案 - 如果我动态构建boost_python库,一切运行良好。我的编译器(来自VS2012)希望所有的boost库都是静态的,但是boost_python - 只是动态的。所以当我给他静态版本的python时 - 它拒绝了它。我不知道为什么以及如何管理它,但这是第二个问题的主体already asked

0 个答案:

没有答案