Skip to content

Link Error after cmake  #2

@LeoDarcy

Description

@LeoDarcy

Hi,
I have link error when I build solution in Visual Studio 2017. It may be caused by different versions of Optix, DevIL or CUDA. (I find the code won't work with Optix 7.0 or higher). How can I solve this problem and what is the version of Optix and Devil you suggest?
My environment is: Windows 10, Optix 6.0, DevIL 1.8.0, CUDA10.1.
The error message is following:

1>Camera.obj : error LNK2019: 无法解析的外部符号 __imp_rtVariableSet3fv,该符号在函数 "public: void __cdecl optix::VariableObj::setFloat(struct optix::float3)" (?setFloat@VariableObj@optix@@QEAAXUfloat3@2@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtVariableSet3fv
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtVariableSetObject,该符号在函数 "public: void __cdecl optix::VariableObj::setBuffer(class optix::Handle)" (?setBuffer@VariableObj@optix@@QEAAXV?$Handle@VBufferObj@optix@@@2@@z) 中被引用
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtVariableGetContext,该符号在函数 "public: virtual class optix::Handle __cdecl optix::VariableObj::getContext(void)const " (?getContext@VariableObj@optix@@ueba?AV?$Handle@VContextObj@optix@@@2@XZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtVariableGetContext
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextDestroy,该符号在函数 "public: virtual void __cdecl optix::ContextObj::destroy(void)" (?destroy@ContextObj@optix@@UEAAXXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextDestroy
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextValidate,该符号在函数 "public: virtual void __cdecl optix::ContextObj::validate(void)" (?validate@ContextObj@optix@@UEAAXXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextValidate
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextGetErrorString,该符号在函数 "public: static class optix::Exception __cdecl optix::Exception::makeException(enum RTresult,struct RTcontext_api *)" (?makeException@Exception@optix@@sa?AV12@W4RTresult@@PEAURTcontext_api@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextGetErrorString
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextDeclareVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ContextObj::declareVariable(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?declareVariable@ContextObj@optix@@UEAA?AV?$Handle@VVariableObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextDeclareVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextQueryVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ContextObj::queryVariable(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)const " (?queryVariable@ContextObj@optix@@ueba?AV?$Handle@VVariableObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextQueryVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextRemoveVariable,该符号在函数 "public: virtual void __cdecl optix::ContextObj::removeVariable(class optix::Handle)" (?removeVariable@ContextObj@optix@@UEAAXV?$Handle@VVariableObj@optix@@@2@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextRemoveVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextGetVariableCount,该符号在函数 "public: virtual unsigned int __cdecl optix::ContextObj::getVariableCount(void)const " (?getVariableCount@ContextObj@optix@@UEBAIXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextGetVariableCount
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtContextGetVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ContextObj::getVariable(unsigned int)const " (?getVariable@ContextObj@optix@@ueba?AV?$Handle@VVariableObj@optix@@@2@I@Z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtContextGetVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramCreateFromPTXFile,该符号在函数 "public: class optix::Handle __cdecl optix::ContextObj::createProgramFromPTXFile(class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?createProgramFromPTXFile@ContextObj@optix@@qeaa?AV?$Handle@VProgramObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@0@Z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramCreateFromPTXFile
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramDestroy,该符号在函数 "public: virtual void __cdecl optix::ProgramObj::destroy(void)" (?destroy@ProgramObj@optix@@UEAAXXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramDestroy
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramValidate,该符号在函数 "public: virtual void __cdecl optix::ProgramObj::validate(void)" (?validate@ProgramObj@optix@@UEAAXXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramValidate
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramGetContext,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ProgramObj::getContext(void)const " (?getContext@ProgramObj@optix@@ueba?AV?$Handle@VContextObj@optix@@@2@XZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramGetContext
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramDeclareVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ProgramObj::declareVariable(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?declareVariable@ProgramObj@optix@@UEAA?AV?$Handle@VVariableObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramDeclareVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramQueryVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ProgramObj::queryVariable(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)const " (?queryVariable@ProgramObj@optix@@ueba?AV?$Handle@VVariableObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramQueryVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramRemoveVariable,该符号在函数 "public: virtual void __cdecl optix::ProgramObj::removeVariable(class optix::Handle)" (?removeVariable@ProgramObj@optix@@UEAAXV?$Handle@VVariableObj@optix@@@2@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramRemoveVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramGetVariableCount,该符号在函数 "public: virtual unsigned int __cdecl optix::ProgramObj::getVariableCount(void)const " (?getVariableCount@ProgramObj@optix@@UEBAIXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramGetVariableCount
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtProgramGetVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::ProgramObj::getVariable(unsigned int)const " (?getVariable@ProgramObj@optix@@ueba?AV?$Handle@VVariableObj@optix@@@2@I@Z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtProgramGetVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceCreate,该符号在函数 "public: class optix::Handle __cdecl optix::ContextObj::createGeometryInstance(void)" (?createGeometryInstance@ContextObj@optix@@qeaa?AV?$Handle@VGeometryInstanceObj@optix@@@2@XZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceCreate
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceDestroy,该符号在函数 "public: virtual void __cdecl optix::GeometryInstanceObj::destroy(void)" (?destroy@GeometryInstanceObj@optix@@UEAAXXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceDestroy
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceValidate,该符号在函数 "public: virtual void __cdecl optix::GeometryInstanceObj::validate(void)" (?validate@GeometryInstanceObj@optix@@UEAAXXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceValidate
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceGetContext,该符号在函数 "public: virtual class optix::Handle __cdecl optix::GeometryInstanceObj::getContext(void)const " (?getContext@GeometryInstanceObj@optix@@ueba?AV?$Handle@VContextObj@optix@@@2@XZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceGetContext
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceSetGeometry,该符号在函数 "public: void __cdecl optix::GeometryInstanceObj::setGeometry(class optix::Handle)" (?setGeometry@GeometryInstanceObj@optix@@QEAAXV?$Handle@VGeometryObj@optix@@@2@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceSetGeometry
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceSetMaterialCount,该符号在函数 "public: void __cdecl optix::GeometryInstanceObj::setMaterialCount(unsigned int)" (?setMaterialCount@GeometryInstanceObj@optix@@QEAAXI@Z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceSetMaterialCount
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceSetMaterial,该符号在函数 "public: void __cdecl optix::GeometryInstanceObj::setMaterial(unsigned int,class optix::Handle)" (?setMaterial@GeometryInstanceObj@optix@@QEAAXIV?$Handle@VMaterialObj@optix@@@2@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceSetMaterial
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceDeclareVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::GeometryInstanceObj::declareVariable(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?declareVariable@GeometryInstanceObj@optix@@UEAA?AV?$Handle@VVariableObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceDeclareVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceQueryVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::GeometryInstanceObj::queryVariable(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)const " (?queryVariable@GeometryInstanceObj@optix@@ueba?AV?$Handle@VVariableObj@optix@@@2@AEBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceQueryVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceRemoveVariable,该符号在函数 "public: virtual void __cdecl optix::GeometryInstanceObj::removeVariable(class optix::Handle)" (?removeVariable@GeometryInstanceObj@optix@@UEAAXV?$Handle@VVariableObj@optix@@@2@@z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceRemoveVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceGetVariableCount,该符号在函数 "public: virtual unsigned int __cdecl optix::GeometryInstanceObj::getVariableCount(void)const " (?getVariableCount@GeometryInstanceObj@optix@@UEBAIXZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceGetVariableCount
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryInstanceGetVariable,该符号在函数 "public: virtual class optix::Handle __cdecl optix::GeometryInstanceObj::getVariable(unsigned int)const " (?getVariable@GeometryInstanceObj@optix@@ueba?AV?$Handle@VVariableObj@optix@@@2@I@Z) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryInstanceGetVariable
1>OptiXMesh.obj : error LNK2019: 无法解析的外部符号 __imp_rtGeometryCreate,该符号在函数 "public: class optix::Handle __cdecl optix::ContextObj::createGeometry(void)" (?createGeometry@ContextObj@optix@@qeaa?AV?$Handle@VGeometryObj@optix@@@2@XZ) 中被引用
1>sutil.obj : error LNK2001: 无法解析的外部符号 __imp_rtGeometryCreate

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions