Boost.Python 和错误LNK1104:无法打开文件'boost_python-vc100-mt-gd-1_55.lib'
Boost.Python and error LNK1104: cannot open file 'boost_python-vc100-mt-gd-1_55.lib'
我正试图按照本教程将Python嵌入C++应用程序,但从一开始就遇到了障碍。让我带你浏览一下…
- 我将boost库提取到C:\codelibrarys\C++\boost_1_55_0
-
我在VC++中创建了一个新项目,并在其中创建了一份"test1.cpp"文件,代码如下:
#include <boost/python.hpp> int main(int, char**) { Py_Initialize(); Py_Finalize(); return 0; }
- 然后,我将以下目录放在我的VC++目录>包含目录中:
- C:\codelibrarys\C++\boost_1_55_0
- C: \代码库\C++\boost_1_55_0\boost\python
- C: \Python27\include
- 在我的VC++目录>库目录中:
- C:\codelibrarys\C++\boost_1_55_0
- C: \代码库\C++\boost_1_55_0\libs
- C: \Python27\libs
- 在我的VC++目录>源目录中:
- C:\Python27\include
- C: \代码库\C++\boost_1_55_0
添加这些并运行后,我收到错误LNK1104:无法打开文件'oost_python-vc100-mt-gd-1_55.lib'.
好吧,事实证明我需要实际安装boost库。好的我这样做了。它创建了新文件夹"…"。。\boost_1_55_0\stage\lib.'在它内部,有一个名为libboost_python-vc100-mt-gd-1_55.lib的库文件和另一个非常相似但不包括"gd"部分的库文件。
在"Linker">"General">"Additional Library Directories"下,我添加了C:\codelibraries\C++\boost_1_55_0\stage\lib。我又跑了一遍。它仍然给出了相同的链接器错误LNK1104:无法打开文件'boost_python-vc100-mt-gd-1_55.lib'。我转到'stage\lib'文件夹,发现没有boost_pithon-vc100-mt-gd-1_55lib',只有*lib*boost_pathon-vc100-mt-gd-1_5.5lib.
我将libboost_python-vc100-mt-gd-1_55.lib重命名为boost_pathon-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位机器有关吗?我的includes不正确吗?如果可以的话,请帮忙。非常感谢提供任何信息,谢谢。
我将返回到这个问题,因为我不想让它没有答案。事实证明,问题是试图将64位Python实现与32位版本的boost库一起使用。在切换到32位Python之后,事情变得容易多了。如果你不必使用64位Python,我建议你不要使用它
在我的例子中,stage/lib中只有.lib文件以libboost*开头,而不是以boost*开始。所以我必须从http://boost.teeks99.com/其具有所有libboost*.lib、boost*.ib和boost*.dll版本,并将boost*.lib和boost*.dll添加到stage\lib库中,以便其工作。
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- Pybind11:将元组列表从Python传递到C++
- 如何在c++中使用引用实现类似python的行为
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 递归列出所有目录中的C++与Python与Ruby的性能
- IPC使用多个管道和分支进程来运行Python程序
- 从python中调用C++函数并获取返回值
- Python 3.7 和 excess_args 的 SWIG 问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何在python中使用c ++ .lib(c ++静态库)文件
- 使用带有.lib和一堆.dll和.h文件的Python CFFI
- Boost.Python 和错误LNK1104:无法打开文件'boost_python-vc100-mt-gd-1_55.lib'
- Visual Studio c++ python lib
- 令人费解的Boost.Python 1.54(调试版本)对Windows上的Python27.lib的依赖关系
- Python 代码到 C++ lib 或 DLL
- 安装用C++编写的Python包(leven)时出错:g++无法识别的命令行选项--输出lib
- 将.lib和.h文件转换为可在Python中使用的DLL
- 在python中使用cpp项目的dll和.lib文件
- 如何使用 Python 包装 c++ 库(.h 和 .lib 文件)?
- 将 python lib 与 swig 和 g++ 链接时出错