Windows 上 Boost.Python 1.54(调试版本)对 Python27.lib 的令人困惑的依赖关系

2023-12-15

我一定犯了某种明显的错误,但经过几个小时的战斗,我无法取得进一步的进展:

升级到 Boost 1.54、CMake 2.8.12 和 Python 2.7.5(所有三个均来自slightly早期的次要版本),我的 Python 绑定project不再在调试配置中链接(它们在发布中链接良好)。我正在使用 VS 2012 进行构建。更新前一切正常.

我按照标准方式构建了 Boost:bootstrap.bat其次是b2 address-model=64 toolset=msvc-11.0。我的系统安装了 Python 2.7,由 b2 选取:

notice: [python-cfg] Configuring python...
notice: [python-cfg] Registry indicates Python 2.7 installed at "C:\Python27\"
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Python27\python.exe" 2>&1'
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...requested configuration matched!
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "C:\Python27\Include"
notice: [python-cfg]   library path: "C:\Python27\libs"
notice: [python-cfg]   DLL search path: "C:\Python27"

我的机器上没有安装任何其他 Python。

当我在项目上运行 CMake 时,一切看起来都很好:

Found PythonLibs: optimized;C:/Python27/libs/python27.lib;debug;C:/Python27/libs/python27_d.lib (found version "2.7.5")

调试中链接器命令行的相关部分符合预期:

"C:\franz\dev\boost_1_54_0\stage\lib\libboost_python-vc110-mt-gd-1_54.lib" "C:\Python27\libs\python27_d.lib"

当我最终在调试中构建项目时:

LINK : fatal error LNK1104: cannot open file 'python27.lib'

既然无处可去python27.lib在链接器的命令行中提到,我编辑了libboost_python-vc110-mt-gd-1_54.lib使用十六进制编辑器只是发现它包含对python27.lib(形式为/DEFAULTLIB:"python27.lib")我希望参考的地方python27_d.lib相反(没有)。

我在构建 Boost 时做错了什么吗?这是 Boost 1.54 中 Boost.Python 的已知问题吗?任何帮助将不胜感激。


更新#1:我再次尝试使用 Boost 1.51 和 1.50,出现同样的问题,所以这不是 Boost 中的回归。

更新#2:我从 Python 安装中删除了 Python 库 (python27_d.lib) 的调试版本,从而恢复为普通 Python 安装。然后我重建了 Boost 1.51 和我的项目(CMake 按预期报告了单个库文件:Found PythonLibs: C:/Python27/libs/python27.lib (found version "2.7.5"))。问题仍然存在,但是错误消息现在提到了 python27_d.lib:LINK : fatal error LNK1104: cannot open file 'python27_d.lib'!

更新#3: Using 过程监控器我可能没有在其中搜索 python27_d.libC:\Python27\libs\它实际所在的位置:

3:35:28.0550683 PM  link.exe    10132   CreateFile  C:\franz\dev\appleseed\build\appleseed.python\python27_d.lib    NAME NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0551846 PM  link.exe    10132   CreateFile  C:\franz\dev\boost_1_50_0\stage\lib\python27_d.lib  NAME NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0552474 PM  link.exe    10132   CreateFile  C:\franz\dev\boost_1_50_0\stage\lib\Debug\python27_d.lib    PATH NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0553595 PM  link.exe    10132   CreateFile  C:\franz\dev\appleseed\build\appleseed.python\python27_d.lib    NAME NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0556105 PM  link.exe    10132   CreateFile  C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64\python27_d.lib NAME NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0559637 PM  link.exe    10132   CreateFile  C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\lib\amd64\python27_d.lib  NAME NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0560984 PM  link.exe    10132   CreateFile  C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64\python27_d.lib  NAME NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
3:35:28.0561741 PM  link.exe    10132   CreateFile  C:\franz\dev\appleseed\build\appleseed.python\python27_d.lib    NAME NOT FOUND  Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, AllocationSize: n/a

更新#4: 相关问题:Visual C++ 调试库命名约定


我解决了这个问题,感谢这篇文章中的提示:Visual C++ 调试库命名约定.

基本上,头文件pyconfig.h随 Python 一起提供(在C:\Python27\include\) 强制链接到python27_d.lib在调试构建中(通过#pragma comment()指令),无论该库是否存在。

诀窍是永远不要包含Python.h直接,而是包含该文件的 Boost 包装器,boost/python/detail/wrap_python.hpp它负责禁用违规行为#pragma comment()指示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上 Boost.Python 1.54(调试版本)对 Python27.lib 的令人困惑的依赖关系 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 私有模板函数

    我有一堂课 C h class C private template
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 通用类 (T) - 从一系列类型中指定 VB.Net

    这是我正在尝试开发的代码 Public Structure Statistic Of t Dim maxStat As t Dim curStat As t Public Sub New ByVal pValue As t maxStat
  • 为什么 Gremlin JavaScript 使用“from_”映射而不是“from”?

    在发现你必须使用之前我为此苦苦挣扎了几个小时from 代替from使用 gremlin javascript 时 在深入研究源代码后 我终于发现代码正在使用from 代替from see code 因为我是新手 所以这很奇怪 因为它的对应部
  • 如何将 gif 保存到我的相册中?

    我尝试使用 UIImageWriteToSavedPhotosAlbum 和 ALAssetsLibrary 将我的 gif 保存到相册 但是当我尝试通过电子邮件发送 gif 时 它没有动画 我很确定元数据在保存时会丢失 有谁知道如何保存
  • 如何在 R 中使用 ggplot2 制作类似的图?

    对于以下数据集 我想为每个变量绘制图表 并对每个 10 个观察值进行不同的颜色 我可以使用 R 库来做到这一点 我想学习如何使用 ggplot2 来做到这一点 dput mydata structure list beta0 C1 c 5
  • 使用 make 文件创建目录

    我想使用 makefile 创建目录 我的项目目录是这样的 Project output source Testfile cpp Makefile 我想将所有对象和输出放入相应的输出文件夹中 我想创建编译后像这样的文件夹结构 Project
  • 在 Knit 中调整观星台的大小

    我使用 knit 整理了一份文档 虽然该文档的大部分看起来都不错 但有一个回归表太宽 如果不进行一些更改 就无法容纳在页面上 回归表是使用 stargazer 生成的 并且相当广泛 我尝试按如下方式调整整个块的大小 r echo FALSE
  • 无法连接到 Localdb,但可以使用命名管道

    我真的很讨厌将我的应用程序连接到数据库 我正在尝试使用连接到数据库 localdb MSSQLLocalDB在连接字符串中 我收到此错误 A network related or instance specific error occurr
  • web-api POST body 对象始终为 null

    我仍在学习 Web API 所以如果我的问题听起来很愚蠢 请原谅我 我的里面有这个StudentController public HttpResponseMessage PostStudent FromBody Models Studen
  • 使用 VBA 创建 Outlook 事件(不是约会!)

    所以有一个线程所以链接在这里它链接了如何创建 Outlook 事件 但实际上它创建的是约会 而不是事件 差异可以阅读HERE 我的问题很简单 如何使用 VBA 创建实际事件而不是约会 谢谢 约会和事件之间的区别是事件持续 24 小时或更长时
  • Zend 表单引导注释日期选择器“提供给转义助手的对象,但标志不允许递归”

    我正在使用带有 Bootstrap 和 ReverseForm 适配器的 Zend 框架 并且有一个有趣的问题 当我在 Zend Form 中使用 Bootstrap Datepicker 时 出现下一个异常 Object provided
  • 将位图转换为 ninepatch 以用作背景

    我有一个问题困扰了我好几天了 我正在尝试将九个补丁图像转换为位图数组 并将特定颜色更改为不同的颜色 我无法将位图转换回九个补丁 因此我可以将其用作布局的背景 我尝试使用此代码创建位图 然后将其转换回九个补丁可绘制对象 但它只是启动活动并闪烁
  • asp 服务器错误“无法加载文件或程序集”,但程序集肯定存在。

    我目前收到以下错误 在 locahost 网站上 Could not load file or assembly MySql Data Version 6 5 4 0 Culture neutral PublicKeyToken c5687
  • android中Videoview的身份验证

    我正在使用一个视频观看播放http视频 Http视频url需要验证 所以请让我知道如何为 VideoView 设置身份验证 如果没有 是否还有其他替代方法来查看经过身份验证的视频 感谢和问候 斯里 哈沙 VideoView 中有一个隐藏方法
  • 如何设置 ASP.NET 身份验证属性

    我的 web config 文件中有以下设置 如果用户未登录 它基本上会限制对页面的访问 如果我不想使用 asp 登录控件或实现会员资格提供程序 我如何 告诉 asp loginregister aspx 页面已授权该请求如果我想实现自己的
  • Android 片段中的手电筒 - SurfaceView

    我正在尝试为当地音乐会开发手电筒应用程序 这是一个更大的应用程序的一部分 因此它位于一个片段中 这是代码 首先 我声明了该类及其变量 public class ConcertFragment extends Fragment ToggleB
  • 在 VBA 中解析 XML

    我有一个 XMLResponseXML目的 我想循环遍历所有名为 XYZ 的节点 我该怎么做呢 以下是您可以使用的一些功能parsing your XML Private xml As MSXML DOMDocument Private S
  • 读入R中路径中包含UTF-8字符的文件

    假设我有大量 rds 文件 其中一些文件的路径中包含 UTF 8 字符 由于某种原因 R 无法处理一些特殊的重音 例如enc2utf8 它应该打印 但在我最后它转换为 C 这使得 R 无法识别该文件 有什么想法如何处理这种情况 帮助 R 进
  • 从c中的另一个文件链接静态函数

    我有两个源文件 A c 和 B c A c 有一个函数 call me static int call me void call me register register call me call me 正如你所看到的 call me函数被
  • 从 UWP 应用程序中提取图标

    在尝试实现 打开方式 功能时 我遇到了从 UWP 应用程序提取图标的问题 因此 在收到推荐的应用程序列表后 借助以下命令打开特定文件SHAssocEnumHandlers 我试图在以下命令的帮助下提取每个应用程序的图标IAssocHandl
  • Windows 上 Boost.Python 1.54(调试版本)对 Python27.lib 的令人困惑的依赖关系

    我一定犯了某种明显的错误 但经过几个小时的战斗 我无法取得进一步的进展 升级到 Boost 1 54 CMake 2 8 12 和 Python 2 7 5 所有三个均来自slightly早期的次要版本 我的 Python 绑定projec