【发布时间】:2022-01-21 05:55:45
【问题描述】:
我正在使用 CMake 生成的 Visual Studio 项目中工作,由于某种原因,我在构建时收到 LNK1104 错误,提示“无法打开文件 'hboost_python27-vc142-mt-x64-1_72.lib'”和我知道一个事实,该文件在任何地方都不存在,并且正确的依赖项是“hboost_python27-mt-x64.lib”。那么为什么 Visual Studio 要求这个文件呢?我将如何推导出这个文件名的来源,然后修复它?这更像是一个 CMake 问题吗?还是 Visual Studio 问题?
作为参考,我正在为 Houdini 编译一个自定义的美元资产解析器,这是我正在处理的代码 https://github.com/mwalk176/USD-Custom-Resolver-Windows-Example/tree/main/custom_resolver/project
【问题讨论】:
-
可能是标题中的
#pragma comment (lib ...。 -
请注意,美元本身依赖于 boost。不要混合不同的 boost 库。请改用vcpkg。
-
我正在尝试根据 Houdini 的 USD 和 boost 的内部实现来编译它,但这仍然需要 vcpkg 吗?
-
唯一的#pragma 注释是我的代码主标题中的
#pragma once,这会导致它吗? -
@drescherjm 更新:在似乎导致它的包含的头文件之一中找到了
#pragma comment (lib...)。格式为pragma comment(lib, HBOOST_LIB_PREFIX HBOOST_STRINGIZE(HBOOST_LIB_NAME) "-" HBOOST_LIB_TOOLSET HBOOST_LIB_THREAD_OPT HBOOST_LIB_RT_OPT HBOOST_LIB_ARCH_AND_MODEL_OPT "-" HBOOST_LIB_VERSION ".lib"),在VS2019环境下如何设置这些变量?
标签: c++ visual-studio cmake houdini usd