python - Boost.Python 和错误 LNK1104 : cannot open file 'boost_python-vc100-mt-gd-1_55.lib'

标签 python c++ visual-c++ boost linker

我正在尝试关注 this关于将 Python 嵌入到 C++ 应用程序的教程,我从一开始就遇到了障碍。让我带您了解一下...

  1. 我将 boost 库解压到 C:\codelibraries\c++\boost_1_55_0
  2. 我在 VC++ 中创建了一个新项目,并在其中使用以下代码创建了一个“test1.cpp”文件:

    #include <boost/python.hpp>
    
    int main(int, char**) {
     Py_Initialize();
    
     Py_Finalize();
     return 0;
    }
    
  3. 然后我将以下目录放入我的 VC++ Directories > Include Directories:
    • C:\codelibraries\c++\boost_1_55_0
    • C:\codelibraries\c++\boost_1_55_0\boost\python
    • C:\Python27\include
  4. 在我的 VC++ 目录 > 库目录中:
    • C:\codelibraries\c++\boost_1_55_0
    • C:\codelibraries\c++\boost_1_55_0\libs
    • C:\Python27\libs
  5. 在我的 VC++ 目录 > 源目录中:
    • C:\Python27\include
    • C:\codelibraries\c++\boost_1_55_0

添加这些并运行后,出现错误 LNK1104:无法打开文件 'boost_python-vc100-mt-gd-1_55.lib'

好吧,原来我需要 install boost 库。美好的。我这样做。它会创建新文件夹“..\boost_1_55_0\stage\lib”。在其中,有名为 libboost_python-vc100-mt-gd-1_55.lib 的库文件和另一个非常相似但不包括“gd”部分的库文件。

在“链接器”>“常规”>“其他库目录”下,我添加了 C:\codelibraries\c++\boost_1_55_0\stage\lib。我再次运行它。它仍然给出相同的链接器错误 LNK1104:无法打开文件 'boost_python-vc100-mt-gd-1_55.lib'。我转到“stage\lib”文件夹,发现没有 boost_python-vc100-mt-gd-1_55.lib,只有 *lib*boost_python-vc100-mt-gd-1_55.lib .

我将 libboost_python-vc100-mt-gd-1_55.lib 重命名为 boost_python-vc100-mt-gd-1_55.lib 并重新运行构建。

它成功了,但给了我其他链接器错误:

error LNK1120: 3 unresolved externals
error LNK2001: unresolved external symbol __imp___Py_NoneStruct
error LNK2019: unresolved external symbol __imp__Py_Finalize referenced in function _main
error LNK2019: unresolved external symbol __imp__Py_Initialize referenced in function _main

现在我被困住了,来到这里。是我写的那几行代码不对吗?跟我用64位机有关系吗?我的包含不正确吗?如果可以的话请帮忙。非常感谢任何信息,谢谢。

最佳答案

我要回到这个问题,因为我不想让它无人回答。事实证明,问题是试图将 64 位 Python 实现与 32 位版本的 boost 库一起使用。切换到 32 位 Python 后,事情变得容易多了。如果您不必使用 64 位 Python,我建议不要使用它。

关于python - Boost.Python 和错误 LNK1104 : cannot open file 'boost_python-vc100-mt-gd-1_55.lib' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709876/

相关文章:

c++ - msvc 相当于 gcc 的 __BASE_FILE__

python - 从数据库中获取此信息的最有效方法是什么?

python - all() 为同一个表达式返回不同的值

c++ - 在 P1141R1 投票通过的情况下,从具有相同约束的多个推导参数中推导出多少种类型?

c++ - 将迭代器的地址传递给 STL::for_each 中的函数

c++ - 如果我使用 BLAS/cuBLAS 以使其性能优于普通 C/CUDA,矩阵应该有多大?

visual-c++ - 用于 GCC/G++ 的 VC++ #import 指令

python - Rasa 核心训练命令 : unrecognized arguments

python - 具有真实请求数据的懒惰海盗模式

c++ - 如果 count() 是 constexpr 函数,为什么 std::array<int, count()> 不能编译?