【问题标题】:Linking to boost::python using Visual C++ Express 10使用 Visual C++ Express 10 链接到 boost::python
【发布时间】:2011-07-31 14:53:04
【问题描述】:

我已经在 Windows 下使用 Visual C++ Express 2010 构建了 Python (3.2.1) 和 boost::python (1_47_0)。虽然 boost::filesystem 工作正常,但 boost::python 不能(这两个都需要链接到库以及标题)。我收到了错误:

2>LINK : fatal error LNK1104: cannot open file 'boost_python-vc100-mt-gd-1_47.lib'

这看起来很清楚,但是在 stage/lib 文件夹中,我可以看到“libboost_python_vc100-mt-gd-1_47.lib”——即正确的文件名,但以“lib”为前缀。不知何故,自动链接适用于文件系统的东西,但不适用于 Python。如果我复制 boost::python 库并删除“lib”前缀,则所有链接都很好。

这是一个已知的 Boost 问题,还是有其他问题?我可以重命名文件,但最好删除这一步。

【问题讨论】:

  • 您的问题有误吗?你的文件是libboost_python_vc100-mt-gd-1_47.lib 还是libboost_python-vc100-mt-gd-1_47.lib
  • 如果您将 boost 构建为动态库(标志 link=shared),您将获得不带“lib”前缀的 lib 文件。但是既然你想做静态链接,那么下面定义STATIC_LIB的答案会更合适。相关帖子:stackoverflow.com/a/3461840/2159806
  • @Hans 你在哪里定义 CMAKE 中的 STATIC_LIB?在.h?能给我举个例子吗。我在选择要重命名 boost_python 的输出文件时遇到问题。

标签: c++ python boost static-linking


【解决方案1】:

如果你想使用libboost_*库,你必须定义BOOST_PYTHON_STATIC_LIB

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    相关资源
    最近更新 更多