“无用”的前言

在《初步了解 make 的基础并尝试使用》和《研究HDK(Houdini Development Kit):使用CMake自动生成VS工程》中,我描述了我对“make”的学习和试用其配置一个HDK的工程。

但当我现在需要配置一个新工程时,回来参考这两篇博客时,我发现其中有很多“无用的废话”。所谓的“废话”其实是配置工程中一些错误的尝试或者延伸的思考,当然并非无用,但当我只需要知道 “如何配置一个新的HDK工程” 时,就会发现博客中记录的内容很多是不需要关心的。

因此我想用最简单的描述重新总结一下 “配置一个HDK工程的通用步骤”


本篇将分为:

  • 【环境准备】 描述了在第一次配置工程中需要做的步骤。之后不需要再做。
  • 【创建新工程步骤】 描述了每次创建新工程时都需要重复的步骤。
  • 【Trouble Shooting】 记录了一些问题的解决方式。

环境准备

1.HDK包含在Houdini中

HDK包含在Houdini安装目录中,只要从官网上下载Houdini即可拥有HDK了。

2.CMake

从官网上下载CMake:

如果一切正常,应该能完成《初步了解 make 的基础并尝试使用》中【3.1~3.3】的小实验。

如果出问题,可以查阅文末【Trouble Shooting】的【1】

创建新工程步骤

1.准备源代码

首先准备源代码,一般来自于HDK中的范例(Houdini安装目录\toolkit\samples)。
最后形成这样的目录结构:

其中,源代码和CMakeLists.txt都放在工程目录的src下。

2.编辑 CMakeLists.txt

模板如下:

cmake_minimum_required( VERSION 3.6 )# 解决方案名:
project( HDK_Project )# 请将此目录替换为本机Houdini的安装目录(注意为斜杠"/"不是"\")
list( APPEND CMAKE_PREFIX_PATH "C:/Program Files/Side Effects Software/Houdini 18.5.408/toolkit/cmake" )# Locate Houdini's libraries and header files.
# Registers an imported library target named 'Houdini'.
find_package( Houdini REQUIRED )# 将要生成的库的名字:
set( library_name DM_BackgroundHook )# 根据代码中是否有内嵌的DS文件来选择是启用还是注释掉:
#houdini_generate_proto_headers( FILES 源代码.C )# 添加代码文件:
add_library( ${library_name} SHAREDDM_BackgroundHook.C
)# Link against the Houdini libraries, and add required include directories and
# compile definitions.
target_link_libraries( ${library_name} Houdini )# Include ${CMAKE_CURRENT_BINARY_DIR} for the generated header.
target_include_directories( ${library_name} PRIVATE${CMAKE_CURRENT_BINARY_DIR}
)# Sets several common target properties, such as the library's output directory.
houdini_configure_target( ${library_name} )

需要做以下改动:

1)修改解决方案名(如果有必要)


此名字将为生成的.sln文件的名字

2)填写HDK目录中cmake文件夹的路径

注意为斜杠/不是\

3)指定 库(dll) 的名字


此为生成的.vcxproj文件的名字,也为最终生成dll文件的名字。

4)看是否需要houdini_generate_proto_headers

如果源代码中有内嵌的DS文件,例如:

则需要:

# Code generation for the embedded DS file in SOP_Star.C.
houdini_generate_proto_headers( FILES SOP_Star.C )

否则就不需要

5)添加源代码

3.使用CMake

3.1 设定目录

设定src与build目录:

随后点Configure进行配置

3.2 配置

设定当前VisualStudio的版本,和x64为平台:

随后点Finish

如果有问题则会出现红字,没问题的话则最后显示完成:

(不用担心红色的条框,再点一下“Configure”即可消除红色)

3.3 生成

点击Generate即可完成生成

生成工程在build目录:

4. 使用VS

右键项目点生成

即可发现dll被放到正确的位置

Trouble Shooting

1.Cmake找不到VisualStudio

有可能VS中的CMake的组件没安装,安装步骤如下:

打开VS的安装器:

然后点修改

单个组件下找到用于 CMake 的Visual C++ 工具,确保它是勾选的,然后点右下角修改

2. 由于版本问题编译不过


我在用VS2019编译“DM_BackgroundHook”这个范例时编译不过(Houdini版本 18.0.348
随后换了更高级的Houdini版本18.5.408就没了问题。
或许以后遇到类似问题时可以尝试切换VS或者Houdini的版本。

研究HDK(Houdini Development Kit):概括配置一个HDK工程的通用步骤相关推荐

  1. 工具--常见eclipse配置导入web工程(tomcat容器)步骤

    本文针对的是导入工程的配置,新建工程的配置另述. 下面是导入的过程: 1.导入工程:直接使用file的importProject选项进行导入: 如上图,点击"Browse"直接选择 ...

  2. java jdk 7 64位_jdk1.7 64位下载-jdk7 64位(Java SE Development Kit 7)下载 7u80 官方正式版-IT猫扑网...

    jdk7 64位(java SE Development Kit 7)是一个适合java开发人员安装使用的运行环境,jdk应用于很多开发软件产品,这里为大家分享的是jdk1.7 64位的完整安装包,需 ...

  3. Java SE Development Kit 9.0.4 的下载安装及配置

    一.下载官方网址:www.oracle.com 二.JDK下载过程 (1)进入官方网址,进入官网界面后,点击Resources,再点击Downloads,然后点击java (2)点击java arch ...

  4. linux 安装java se,Linux 下安裝 Java SE Development Kit(JDK)並配置環境變量

    終端輸入以下命令: # 創建 JDK 目錄,-p 為創建多個目錄 $ sudo mkdir -p /opt/java # 將 JDK 解壓到指定目錄(看自己的習慣) $ sudo tar zxvf ~ ...

  5. red hat安装宝塔_如何在几分钟内安装Red Hat Container Development Kit(CDK)

    red hat安装宝塔 作为负责开发容器化应用程序提供的可能性的应用程序开发人员或架构师,将所有工具组合在一起以帮助您入门时几乎没有帮助. 到现在. 红帽容器开发套件(CDK) 安装变得简单! 红帽提 ...

  6. 如何在几分钟内安装Red Hat Container Development Kit(CDK)

    作为负责开发容器化应用程序提供的可能性的应用程序开发人员或架构师,将所有工具集中在一起以使您入门时几乎没有帮助. 到现在. 红帽容器开发套件(CDK) 安装变得简单! 红帽提供了一个容器开发套件(CD ...

  7. java runtime environment 官网_Java Runtime Environment SE Development Kit

    Java 2平台标准版(J2SE)软件是当今开发和发布急需的企业级应用的首选方案.1.4版在Java的跨平台性和高安全性的基础上,增加了很多新的特性和功能,提供了更高的性能.可规划性.稳定性和服务能力 ...

  8. red hat 4.1.2_安装Red Hat Container Development Kit 2.2版本

    red hat 4.1.2 当应用程序开发人员或架构师负责探索容器化应用程序提供的可能性时,没有比"红帽容器开发套件"(CDK)容易的了. Red Hat CDK具有本地OSX,L ...

  9. 安装Red Hat Container Development Kit 2.2版本

    当应用程序开发人员或架构师负责探索容器化应用程序提供的可能性时,没有比Red Hat容器开发套件(CDK)容易的了. Red Hat CDK具有本地OSX,Linux或Windows环境所需的所有Cl ...

最新文章

  1. 成都黑帽门图片大全_2020成都第一波出行/便民/打卡免费大全
  2. IIS写权限漏洞 (HTTP PUT方法利用)
  3. Servlet中过滤器的实现原理(源码实现)
  4. [渝粤教育] 西南科技大学 管理信息系统 在线考试复习资料(1)
  5. 一、Java 面向对象高级——Object类、常用API
  6. 后面第一个大于(51Nod-2500)
  7. TIME_WAIT和CLOSE_WAIT
  8. 【论文写作】2021毕业论文写作选题技巧,建议收藏!
  9. nuxt.js实战之window和document对象的使用
  10. 基于jquery打造的一款全页面图片分享特效
  11. 多图详解IT架构师完整知识体系及技术栈
  12. 锐捷破号破解流程笔记
  13. java单点登录需求分析与代码实现
  14. C++方法名称还原命令c++filt
  15. 云锵基金 2019 年 03 月简报
  16. error: C2679
  17. Boggle单词游戏求解
  18. R语言分组求和,分组求平均值,分组计数
  19. 智慧社区+物联网解决方案
  20. IT 通信类客户分析

热门文章

  1. Navicat 连接mysql 显示 Clinet dose not support authentication protocol request by server
  2. 靶机测试 0s-hackNos-2笔记
  3. 指静脉识别技术特点及应用前景
  4. 中科蓝汛 调试音乐EQ
  5. 解决uniapp在H5端使用不能扫码问题
  6. python数据结构与算法 (翻译)第一章
  7. 努力学习打卡Day03
  8. 给div加边框和颜色
  9. 在阿里晋升3次,5年拿下P8岗位,这份pdf记录了我的整个成长过程
  10. sql截取某些内容或符号之间的内容