VS2013 + Qt5.7编译ctk源码过程记录

目录 

1 下载ctk源码和ctkData资源。

2 建议在编译之前,安装WinSDK。

3 启动cmake。在界面上指定源码路径。新建一个文件夹,保存cmake产生的sln文件等。这里我新建的文件夹叫CTK-Build

 4 点击configure按钮,在弹出的编译器选择框中选择 Visual Studio2013 64位。

 5 设置Qt版本

6  配置Qt-cmake

 7 将下载的ctkData解压。在cmake界面指定ctkData所在路径

8 点击configure按钮,此时configure正常完成。

 9 再次点击configure,等界面出现configure done字样,然后点击generate。此时CTK-Build目录下将出现sln文件。

10 用vs2013打开sln文件,右键点击ALL_BUILD,再点击弹出的生成选项

11 重新点击configure和generate,然后右键点击INSTALL项目,点击生成选项,install仍不能生效

 12 找到ctk源码里的文件SuperBuild.cmake。在文件底部找到 INSTALL_COMMAND "" 一行,修改成 INSTALL_COMMAND ${_INSTALL_CMD} 并保存

13 再次生成INSTALL,你会发现这次输出窗口显示“成功4个”。说明install也成功了


网上介绍如何编译ctk框架的文章很多,大多数主张改ctk的源码,然后编译。我尝试了其中一个比较详细的介绍,发现走到install这一步总是失败。尽管install这一步不是必须的,但是总给人不圆满的感觉。

另有一篇文章编译 CTK(Win10 + Qt 5.14.0 + VS2015)_blackwood-cliff的博客-CSDN博客_ctk编译,几乎不改源码,只是用cmake-gui配置一下,然后就能完成包括install在内的所有项目编译。我用vs2013尝试了,可行。这里把我的操作记录一下,并且补充几句文章没提到的东西。

1 下载ctk源码和ctkData资源。

正常来说,要从github来下载。假如下载有阻碍,可以到我的资源里ctk框架源码,以及ctkData资源-C++文档类资源-CSDN下载下载。

2 建议在编译之前,安装WinSDK。

3 启动cmake。在界面上指定源码路径。新建一个文件夹,保存cmake产生的sln文件等。这里我新建的文件夹叫CTK-Build

VS2013 + Qt5.7编译ctk源码过程记录_第1张图片

 4 点击configure按钮,在弹出的编译器选择框中选择 Visual Studio2013 64位。

VS2013 + Qt5.7编译ctk源码过程记录_第2张图片

 5 设置Qt版本

接下来cmake将报第一个错误:找不到Qt4。这是因为你的电脑上只有Qt5,而ctk源码的配置还是Qt4。解决办法是选中 cmake界面的勾选框[Grouped] 和 [Advanced],然后展开 CTK 节点,将 CTK_QT_VERSION 配置项的值由 4 改成 5

VS2013 + Qt5.7编译ctk源码过程记录_第3张图片

6  配置Qt-cmake

接下来遇到第二个错误:Could not find a package configuration file provided by "Qt5"

 展开 Ungrouped Entries 节点,设置 Qt5_DIR 为正确的 Qt 库路径。

VS2013 + Qt5.7编译ctk源码过程记录_第4张图片

 7 将下载的ctkData解压。在cmake界面指定ctkData所在路径

VS2013 + Qt5.7编译ctk源码过程记录_第5张图片

 点击 Add Entry按钮。添加 CTKData_DIR 配置项。

VS2013 + Qt5.7编译ctk源码过程记录_第6张图片

8 点击configure按钮,此时configure正常完成。

展开ctk节点,选中如下配置项:(已经选中就不要动了)

CTK_ENABLE_PluginFramework
CTK_ENABLE_Widgets
CTK_LIB_PluginFramework
CTK_LIB_Widgets
CTK_PLUGIN_org.commontk.configadmin
CTK_PLUGIN_org.commontk.eventadmin
CTK_PLUGIN_org.commontk.log
CTK_PLUGIN_org.commontk.metatype 

展开 Ungrouped Entries 节点,取消选中 BUILD_TESTING。

VS2013 + Qt5.7编译ctk源码过程记录_第7张图片

 9 再次点击configure,等界面出现configure done字样,然后点击generate。此时CTK-Build目录下将出现sln文件。

10 用vs2013打开sln文件,右键点击ALL_BUILD,再点击弹出的生成选项

编译成功,但是再输出窗口里,你会发现install这一步被跳过了

原文编译 CTK(Win10 + Qt 5.14.0 + VS2015)_blackwood-cliff的博客-CSDN博客_ctk编译认为这是因为无法在C盘install。但是我实测发现,C盘是可以安装ctk的。

不过我还是不喜欢把ctk目录安装在program files里面,所以我修改了cmake的变量CMAKE_INSTALL_PREFIX,并相应新建了install的目录

VS2013 + Qt5.7编译ctk源码过程记录_第8张图片

11 重新点击configure和generate,然后右键点击INSTALL项目,点击生成选项,install仍不能生效

VS2013 + Qt5.7编译ctk源码过程记录_第9张图片

 12 找到ctk源码里的文件SuperBuild.cmake。在文件底部找到 INSTALL_COMMAND "" 一行,修改成 INSTALL_COMMAND ${_INSTALL_CMD} 并保存

VS2013 + Qt5.7编译ctk源码过程记录_第10张图片

VS2013 + Qt5.7编译ctk源码过程记录_第11张图片

13 再次生成INSTALL,你会发现这次输出窗口显示“成功4个”。说明install也成功了

VS2013 + Qt5.7编译ctk源码过程记录_第12张图片

 你可以在CTK-install文件夹里找到头文件和库文件

VS2013 + Qt5.7编译ctk源码过程记录_第13张图片

 

安装完毕后,在实践中发现,CTK-Install\include\ctk-0.1目录下仍缺少service文件夹,导致新建项目编译失败。解决办法是从源代码所在位置CTK-master2\Libs\PluginFramework中把service文件夹拷贝出来。

你可能感兴趣的:(cmake,Visual,C++,qt,qt,visual,studio,cmake,ctk,OSGi)