Maya C++编程IDE Visual studio 编译器配置

学习目标:

成功打包.mll mayaC++插件


学习内容:

1.下载对应版本的Maya devkit:
2.配置打包.mll程序集


学习时间:

一周


学习产出:


文档规则:
    注释:
        (这是注释)
    省略:
        ...
    包含:
        <
    值:
        >
    代码:
        <(代码)>

windows开发环境配置:
    IDE(可以选择VisualStudio),APP(Maya软件),DEVKIT(Maya软件:对应版本),文档(Maya软件:对应版本)
        (*)
        1.DEVKIT(Maya软件:对应版本)
            选择一个版本的devkit下载:
                https://www.autodesk.com/developer-network/platform-technologies/maya
            在DEVKIT中的footPrintNode范例文件:(2019版中的路径)
                ...devkit\dekitBase\devkit\plug-ins\footPrintNode
        (*)
        2.IDE(VisualStudio)
            C++插件安装需要的环境:
                Visual Studio Installer:
                必要选项:
                    C++桌面开发模板:
                        JustInTimeDebuger
                        (如果Maya版本过低请选择低版本的VC++):
                        VC++: 20xx v:xxx 
                        Windows xx SDK
                        Visual C++ tools for CMake
                        Visual C++ ATL for x86 and x64
            C++插件运行建议结构:
                解决方案.sln:
                    插件_1_footPrintNode.vcproj
                        外部依赖(folder)
                        头文件(folder)
                            直接拖入APP(Maya)的依赖头文件(可选)
                                ...Maya20xx\include\maya\
                        源文件(folder)
                        资源文件(folder)
                            footPrintNode.cpp(DEVKIT中的范例)
                                去除报错(举例)<#pragma warning(disable:4996)>
                                Maya插件运行机制<
                                    验证方法:
                                        CMD:
                                            <C:>
                                            <CD \Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>
                                            <dumpbin /EXPORTS (你的插件.mll路径)>
                                    Maya加载插件:
                                        initializePlugin
                                    Maya卸载插件:
                                        uninitializePlugin
                        buildConfig:
                            Release(发布设置):
                                General:
                                    OutputDirectory(可选) > $(PojectDir)build\release\(最终文件输出路径)
                                    IntermediateDirectory(可选) > $(PojectDir)intermediate\release\(最终中间文件输出路径)

                            Debug(调试设置):
                                General:
                                    OutputDirectory(可选) > $(PojectDir)build\debug\(最终文件输出路径)
                                    IntermediateDirectory(可选) > $(PojectDir)intermediate\debug\(最终中间文件输出路径)

                            AllConfigurations:
                                ConfigurationManager(vs2019右上角):
                                    Active solution platform > x64
                                General:
                                    Configuration Type >
                                        DynamicLibrary(.dll)
                                    PlatfromToolset > 
                                        对应maya版本
                                    TargetFileExtension > 
                                        .mll(Maya插件格式)
                                VC++Directories:
                                    IncludeDirectories:
                                        (默认:$(VC_IncludePath);$(WindowsSDK_IncludePath);)...Maya20xx\include\maya\(依赖头文件路径,注意#include中是否已经包含路径,不同版本maya修改这个文件)
                                Linker:(否则会报LinkErrors)
                                    General:
                                        AdditionalLibraryDirectories >
                                            ;...Maya20xx\lib(依赖库文件路径,不同版本maya修改这个文件)
                                    Input:
                                        AdditionalDependencies >
                                            OpenMaya.lib;
                                            OpenMayaRender.lib;
                                            OpenMayaUI.lib;
                                            Foundation.lib;
                                            opengl32.lib;(这个不包含在Maya依赖库文件,但不引用会报错:LINK2019)
                                            shell32.lib;(这个不包含在Maya依赖库文件,但不引用会报错:LINK2001)
                                            (默认:%(AdditionalDependencies))
                                    CommandLine:
                                        Additional options (可选,解决老版本maya报错的问题) >
                                            /export:initializePlugin /export:uninitializePlugin /FORCE:MULTIPLE (这条解决头文件重复引用问题)
                                C/C++:
                                    Preprocessor:
                                        Preprocessor Definitions:(运行环境)(可选) >
                                            WIN32
                                            _WIN64
                                            _WINDOWS
                                            _USRDLL
                                            NT_PLUGIN
                                            REQUIRE_IOSTREAM
                                    Language: >
                                        Enable Run-Time Type Information (可选)
                                    CodeGeneration: >
                                        RuntimeLibrary: >
                                            Multi-threaded(/MT)(带入.dll到其他计算机)

                    插件_2.vcproj
                        外部依赖(folder)
                        头文件(folder)
                        源文件(folder)
                        资源文件(folder)
                        buildConfig
        (*)
        3.APP(Maya)
            依赖头文件:(.h)
                ...Maya20xx\include\maya\
            依赖库:(.lib)
                ...Maya20xx\lib\
            入口:
                Plug-in Manager
        
C++目录结构:
    (*)
    输出:
        app.exe:(应用程序)
            xxx.h
            xxx.cpp
            app.cpp
        math.lib:(可以被“应用程序”引用)
            math.h
            math.cpp
        math.dll:(“应用程序”的依赖库)
            math.h
            math.cpp
    (*)
    编辑:
    (例子):
        Maya_nodes.sln(解决方案)
            maya_math_node.dll(1个插件程序集)
                maya_math_node.h
                maya_math_node.cpp
            maya_array_node.dll(2个插件程序集)
                maya_array_node.h
                maya_array_node.cpp
    (*)
    原理:
        target<
            BuildConfig
            连接器1(linker)<
                编译器(compiler)<
                    txt(文本信息)<
                        .cpp
                        .h
                        .hpp
                        .svc
                        .c
                        .cs
                        ...
                二进制文件(binary)<
                    .lib
                    .dll
            连接器2(linker)<
                编译器(compiler)<
                    txt(文本信息)<
                        .cpp
                        .h
                        .hpp
                        .svc
                        .c
                        .cs
                        ...
                二进制文件(binary)<
                    .lib
                    .dll
            ...



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值