NMAKE编译CTK[通俗易懂]

NMAKE编译CTK[通俗易懂]NMAKE编译CTK启动编译环境从VC中启动命令行或通过VC提供的批处理启动命令行,以能运行编译环境。如果装了多个VC版本,注意使用想要的VC版本启动安装编译环境。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5YlX5Gta-1597631378020)(study/image-20200815174602043.png)]再启动cmaked:\soft\ProgramFiles(x86)\MicrosoftVisualtudio\2017\Commun

大家好,又见面了,我是你们的朋友全栈君。

NMAKE编译CTK

启动编译环境

从VC中启动命令行或通过VC提供的批处理启动命令行,以能运行编译环境。

如果装了多个VC版本,注意使用想要的VC版本启动安装编译环境。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5YlX5Gta-1597631378020)(study/image-20200815174602043.png)]

再启动cmake

d:\soft\Program Files (x86)\Microsoft Visual tudio\2017\Community\Common7\Tools>cmake-gui

打开CMAKE工程

选择CTK的目录和构建目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9esbZFaI-1597631378022)(study/image-20200815174935129.png)]

增加安装步骤

用文本编译工具修改CTK目录下的SuperBuild.cmake,以增加安装步骤

添加如下内容:

#add install command 
if(WIN32)
  set(_INSTALL_CMD nmake install)
else()
  set(_INSTALL_CMD make install)
endif()

#...

INSTALL_COMMAND ${_INSTALL_CMD}

添加完后内容如下:

if(NOT EXISTS ${CTK_BINARY_DIR}/CTK-build/bin)
  file(MAKE_DIRECTORY ${CTK_BINARY_DIR}/CTK-build/bin)
endif()

#-----------------------------------------------------------------------------
set(proj CTK)

set(ep_cxx_standard_arg)
if(CMAKE_CXX_STANDARD)
  set(ep_cxx_standard_arg "-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}")
endif()

#add install command 
if(WIN32)
  set(_INSTALL_CMD nmake install)
else()
  set(_INSTALL_CMD make install)
endif()

ExternalProject_Add(${proj}
  ${${proj}_EP_ARGS}
  DOWNLOAD_COMMAND ""
  CMAKE_CACHE_ARGS
    -DCTK_SUPERBUILD:BOOL=OFF
    -DCTK_SUPERBUILD_BINARY_DIR:PATH=${CTK_BINARY_DIR}
    -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
    -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
    -DCMAKE_CXX_FLAGS_INIT:STRING=${CMAKE_CXX_FLAGS_INIT}
    -DCMAKE_C_FLAGS_INIT:STRING=${CMAKE_C_FLAGS_INIT}
    -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
    -DCMAKE_MACOSX_RPATH:BOOL=${CMAKE_MACOSX_RPATH}
    ${ep_cxx_standard_arg}
  SOURCE_DIR ${CTK_SOURCE_DIR}
  BINARY_DIR ${CTK_BINARY_DIR}/CTK-build
  INSTALL_COMMAND ${_INSTALL_CMD}
  DEPENDS
    ${CTK_DEPENDENCIES}
  )

ExternalProject_AlwaysConfigure(${proj})

打开 cmake工程

点configure,选择创建构建目录,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-txa2UCXm-1597631378024)(study/image-20200815180036083.png)]

配置工程类型

然后选择工程类型为NMake Makefiles,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4F4howOv-1597631378031)(study/image-20200815180115749.png)]

然后自动开始配置,有一些错误,正常的,后面接着配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VWVPv52F-1597631378033)(study/image-20200815180233507.png)]

配置Qt环境

主要CTK_QT_VERSION和CMAKE_PREFIX_PATH

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D9w14b0O-1597631378034)(study/image-20200815180607612.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NmaOiHPR-1597631378035)(study/image-20200815181618924.png)]

配置安装位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vHQh5yTI-1597631378037)(study/image-20200815181824640.png)]

配置CTK组件

根据需要配置组件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOUhYxIV-1597631378037)(study/image-20200815182221598.png)]

其他配置

取消测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XMAdyVgC-1597631378039)(study/image-20200815182008087.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ohI6Q72o-1597631378040)(study/image-20200815182110278.png)]

生成工程

运行配置,如果有错或配置项有红色,多运行几次,检查没有错误后,点生成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yH4ycnjE-1597631378040)(study/image-20200815182419997.png)]

编译安装

d:\soft\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools>cd d:\study\framework\ctk\ctk\build2

d:\study\framework\CTK\ctk\build2>nmake

GeneratorHeaderTemplate.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/org.commontk.plugingenerator.core/ctkPluginGeneratorTargetLibraries.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/org.commontk.plugingenerator.core/org_commontk_plugingenerator_core_Export.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/plugins/org_commontk_plugingenerator_ui.lib
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/plugins/liborg_commontk_plugingenerator_ui.dll
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiExtension.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainExtension.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/org.commontk.plugingenerator.ui/ctkPluginGeneratorUiPlugin_p.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/org.commontk.plugingenerator.ui/org_commontk_plugingenerator_ui_Export.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/include/ctk-0.1/ctkConfig.h
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/CMake/CTKPluginUseFile.cmake
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/CMake/CTKExports.cmake
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/CMake/CTKExports-debug.cmake
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/CMake/CTKConfig.cmake
-- Installing: D:/study/framework/CTK/ctk/build2/CTK-install/lib/ctk-0.1/CMake/CTKConfigVersion.cmake
[ 44%] Forcing configure step for 'CTK'
[ 55%] Completed 'CTK'
[100%] Built target CTK

d:\study\framework\CTK\ctk\build2>

查看编译安装结果

d:\study\framework\CTK\ctk\build2>tree /f d:\study\framework\ctk\ctk\build2\CTK-install
卷 Data 的文件夹 PATH 列表
卷序列号为 00490055 3414:54C4
D:\STUDY\FRAMEWORK\CTK\CTK\BUILD2\CTK-INSTALL
├─include
│  └─ctk-0.1
│      │  ctkAbstractFactory.h
│      │  ctkAbstractFactory.tpp
│      │  ctkAbstractFileBasedFactory.h
│      │  ctkAbstractFileBasedFactory.tpp
│      │  ctkAbstractLibraryFactory.h
│      │  ctkAbstractLibraryFactory.tpp
│      │  ctkAbstractObjectFactory.h
│      │  ctkAbstractObjectFactory.tpp
│      │  ctkAbstractPluginFactory.h
。。。
│
└─lib
    └─ctk-0.1
        │  CTKCore.dll
        │  CTKCore.lib
        │  CTKPluginFramework.dll
        │  CTKPluginFramework.lib
        │  CTKWidgets.dll
        │  CTKWidgets.lib
        │
        ├─CMake
        │  │  CMakeFindDependencyMacro.cmake
。。。
        │  │  UseCTK.cmake
        │  │
        │  └─ctkLinkerAsNeededFlagCheck
        │          A.cpp
        │          B.cpp
        │          C.cpp
        │          CMakeLists.txt
        │
        └─plugins
                liborg_commontk_configadmin.dll
                liborg_commontk_eventadmin.dll
                liborg_commontk_log.dll
                liborg_commontk_metatype.dll
                liborg_commontk_plugingenerator_core.dll
                liborg_commontk_plugingenerator_ui.dll
                org_commontk_configadmin.lib
                org_commontk_eventadmin.lib
                org_commontk_log.lib
                org_commontk_metatype.lib
                org_commontk_plugingenerator_core.lib
                org_commontk_plugingenerator_ui.lib

d:\study\framework\CTK\ctk\build2>

org_commontk_log.lib
org_commontk_metatype.lib
org_commontk_plugingenerator_core.lib
org_commontk_plugingenerator_ui.lib

d:\study\framework\CTK\ctk\build2>


编译安装成功。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135059.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月5日 下午8:46
下一篇 2022年6月5日 下午9:00


相关推荐

  • MySQL索引创建及使用

    MySQL索引创建及使用背景最近在深化学习数据库相关知识,借此机会总结记录一番,本来想自己总结概括一下,但是看到一篇写的简洁明了的博客,为节约时间就直接搬运过来了,有些地方加入一些自己的见解。https://blog.csdn.net/xluren/article/details/32746183关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL…

    2022年5月5日
    37
  • 拆解滴滴大脑 叶杰平谈出行领域算法技术

    拆解滴滴大脑 叶杰平谈出行领域算法技术近日,滴滴研究院副院长叶杰平在上海一场内部分享会上详细解读了滴滴大脑,这是外部首次窥探到较为完整的滴滴算法世界,并且一直潜水的产品“九霄”也首次露出真容。滴滴出行研究院副院长叶杰平滴滴大脑由三部分组成叶杰平将滴滴大脑这个智能系统分为三部分,分别是大数据、机器学习和云计算。其中大数据就像工业革命时代的煤一样举足轻重,人工智能需要数据进行训练,纵观应用级深度学习的成功案例,他们都获得了海量数据,…

    2022年5月5日
    74
  • 免费ip代理池创建[通俗易懂]

    免费ip代理池创建[通俗易懂]反爬技术越来越成熟,为了爬取目标数据,必须对爬虫的请求进行伪装,骗过目标系统,目标系统通过判断请求的访问频次或请求参数将疑似爬虫的ip进行封禁,要求进行安全验证,通过python的第三方库faker可以随机生成header伪装请求头,并且减缓爬虫的爬取速度,能很好的避过多数目标系统的反扒机制,但对一些安全等级较高的系统,也有极大的可能ip被封禁,当ip被封禁后,通过更换代理ip便可以继续爬取,所以具有一个有效的ip代理池是非常重要的,网上有很多动态ip代理提供商,但如果能有一个自己免费的ip代…

    2022年6月3日
    42
  • VS2008工具栏看不到配置管理器或者解决方案配置

    VS2008工具栏看不到配置管理器或者解决方案配置Vs2008工具栏看不到配置管理器或者解决方案配置,很不方便,看不出来是是Debug还是Release。解决方法如下:1、工具-选项-项目和解决方案-常规,勾选显示高级生成配置。2、如果第一步没有效果,那么可以在工具栏上点击右键,选择自定义,在命令选项卡中找到生成,然后在右侧的命令中找到这两项,直接拖动到工具栏。

    2022年7月20日
    17
  • 银行家算法

    银行家算法

    2021年12月30日
    40
  • 判断js数据类型的四种方法和原理

    判断js数据类型的四种方法和原理怎么去判断一个数据属于哪个数据类型 这个是很常见的操作 我们一般都会想到 typeof 和 instanceof 这两个常见的方法 但有时候这两种方法并不能满足我们的需求 那让我们来看一下都有哪些可以判断数据类型的方法吧 1 typeof 这个方法很常见 目前

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号