Unresolved external symbols when building with batch mode on Windows

未关闭
#1,645 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
32/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
cpp
领域
build-system

调研方向

使用 MSVC 2019、LLVM 11.1.0、OIIO 2.4.8.0 和 USED_BATCHED=b8_AVX 标志复现 Windows 构建。检查 Windows 批量构建和链接器配置,以确定报告的 OSL 符号为何无法解析;构建成功完成且不再出现这些链接器错误即表示完成。

由索引模型根据 Issue 内容生成。

描述

Problem

Building with USE_BATCHED options on Windows fails due to unresolved external symbols.

Expected behavior:
Successful build with USE_BATCHED option.

Actual behavior:
There are quite a few unresolved symbols, here are a few representative ones when using USE_BATCHED=b8_AVX :

wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "public: class Imath_2_4::Color3<float> __cdecl OSL_v1_12::pvt::ColorSystem::to_rgb(class OpenImageIO_v2_4::ustring,class Imath_2_4::Color3<float> const &,class OSL_v1_12::ShadingContext *)const " (?to_rgb@ColorSystem@pvt@OSL_v1_12@@QEBA?AV?$Color3@M@Imath_2_4@@Vustring@OpenImageIO_v2_4@@AEBV45@PEAVShadingContext@3@@Z) referenced in function osl_b8_AVX_prepend_color_from_vs
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "public: class OSL_v1_12::Dual<class Imath_2_4::Color3<float>,2> __cdecl OSL_v1_12::pvt::ColorSystem::transformc(class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,class OSL_v1_12::Dual<class Imath_2_4::Color3<float>,2> const &,class OSL_v1_12::ShadingContext *)const " (?transformc@ColorSystem@pvt@OSL_v1_12@@QEBA?AV?$Dual@V?$Color3@M@Imath_2_4@@$01@3@Vustring@OpenImageIO_v2_4@@0AEBV43@PEAVShadingContext@3@@Z) referenced in function osl_b8_AVX_transform_color_vss
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "public: class Imath_2_4::Color3<float> __cdecl OSL_v1_12::pvt::ColorSystem::transformc(class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,class Imath_2_4::Color3<float> const &,class OSL_v1_12::ShadingContext *)const " (?transformc@ColorSystem@pvt@OSL_v1_12@@QEBA?AV?$Color3@M@Imath_2_4@@Vustring@OpenImageIO_v2_4@@0AEBV45@PEAVShadingContext@3@@Z) referenced in function osl_b8_AVX_transform_color_vss
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "public: class OSL_v1_12::Dual<class Imath_2_4::Color3<float>,2> __cdecl OSL_v1_12::pvt::ColorSystem::ocio_transform(class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,class OSL_v1_12::Dual<class Imath_2_4::Color3<float>,2> const &,class OSL_v1_12::ShadingContext *)const " (?ocio_transform@ColorSystem@pvt@OSL_v1_12@@QEBA?AV?$Dual@V?$Color3@M@Imath_2_4@@$01@3@Vustring@OpenImageIO_v2_4@@0AEBV43@PEAVShadingContext@3@@Z) referenced in function "public: void __cdecl OSL_v1_12::Mask<8>::foreach<0,8,class <lambda_10c3e66d8f149be7f137bbae132c7c2d> >(class <lambda_10c3e66d8f149be7f137bbae132c7c2d>)const " (??$foreach@$0A@$07V<lambda_10c3e66d8f149be7f137bbae132c7c2d>@@@?$Mask@$07@OSL_v1_12@@QEBAXV<lambda_10c3e66d8f149be7f137bbae132c7c2d>@@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "public: class Imath_2_4::Color3<float> __cdecl OSL_v1_12::pvt::ColorSystem::ocio_transform(class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,class Imath_2_4::Color3<float> const &,class OSL_v1_12::ShadingContext *)const " (?ocio_transform@ColorSystem@pvt@OSL_v1_12@@QEBA?AV?$Color3@M@Imath_2_4@@Vustring@OpenImageIO_v2_4@@0AEBV45@PEAVShadingContext@3@@Z) referenced in function "public: void __cdecl OSL_v1_12::Mask<8>::foreach<0,8,class <lambda_45cf92685dd24c045df80eeea74fdbeb> >(class <lambda_45cf92685dd24c045df80eeea74fdbeb>)const " (??$foreach@$0A@$07V<lambda_45cf92685dd24c045df80eeea74fdbeb>@@@?$Mask@$07@OSL_v1_12@@QEBAXV<lambda_45cf92685dd24c045df80eeea74fdbeb>@@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::rgb" (__imp_?rgb@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::RGB" (__imp_?RGB@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "public: 
void __cdecl OSL_v1_12::Mask<8>::foreach<0,8,class <lambda_45cf92685dd24c045df80eeea74fdbeb> >(class <lambda_45cf92685dd24c045df80eeea74fdbeb>)const " (??$foreach@$0A@$07V<lambda_45cf92685dd24c045df80eeea74fdbeb>@@@?$Mask@$07@OSL_v1_12@@QEBAXV<lambda_45cf92685dd24c045df80eeea74fdbeb>@@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::hsv" (__imp_?hsv@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::hsl" (__imp_?hsl@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::YIQ" (__imp_?YIQ@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::XYZ" (__imp_?XYZ@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::xyY" (__imp_?xyY@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::linear" (__imp_?linear@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
wide_opcolor_b8_AVX.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class OpenImageIO_v2_4::ustring const OSL_v1_12::Strings::sRGB" (__imp_?sRGB@Strings@OSL_v1_12@@3Vustring@OpenImageIO_v2_4@@B) referenced in function "void __cdecl OSL_v1_12::b8_AVX_pvt::`anonymous namespace'::wide_transformc<class Imath_2_4::Color3<float> >(class OSL_v1_12::pvt::ColorSystem,class OpenImageIO_v2_4::ustring,class OpenImageIO_v2_4::ustring,struct OSL_v1_12::Masked<class Imath_2_4::Color3<float>,8>,struct OSL_v1_12::Wide<class Imath_2_4::Color3<float> const ,8>,class OSL_v1_12::ShadingContext *)" (??$wide_transformc@V?$Color3@M@Imath_2_4@@@?A0x24e98508@b8_AVX_pvt@OSL_v1_12@@YAXVColorSystem@pvt@2@Vustring@OpenImageIO_v2_4@@1U?$Masked@V?$Color3@M@Imath_2_4@@$07@2@U?$Wide@$$CBV?$Color3@M@Imath_2_4@@$07@2@PEAVShadingContext@2@@Z)
Steps to Reproduce
  1. Build with MSVC 2019
  2. Add -D USED_BATCHED=b8_AVX build flag
Versions
  • OSL branch/version: 1.12.9.0
  • OS: Windows 10
  • C++ compiler: MSVC 2019
  • LLVM version: 11.1.0
  • OIIO version: 2.4.8.0
主要语言
C++
星标
2.3k
派生
415
平均合并
3 天 2 小时
30 天内合并 PR
20

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AcademySoftwareFoundation/OpenShadingLanguage 的其他 Issue

查看 AcademySoftwareFoundation/OpenShadingLanguage 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。