可以看出作者使用的是vs的cmake,但是使用vs的ide时,会出现
image.png
也就是说vs中的cmake无法正确识别generate_export_header()函数
因此本文采用CLion的cmake环境进行操作。

库下载

在github中,作者表示大概有12个库是需要安装的,然而成功编译只需要安装5个库分别是:Boost,openCV,Qt,openslide,PugiXML。
12个库中的libjpeg、libtiff、zlib均已经被openslide包含在内。
12个库中的JasPer、unittest++、SWIG、DCMTK目前仍没有使用到(至少在编译阶段还不需要)

1、boost的编译及安装。

参考于:https://www.cnblogs.com/noticeable/p/14847682.html

首先声明一点,也许是软件自身支持版本的原因,或者是CLion中cmake的版本原因,请不要下载boost 1.75以上版本。本文使用的是1.69版本。
下载好boost后,解压到稳定文件夹,执行:

  1. bootstrap gcc
  2. //在此之前,需要自己把gcc的系统变量配置好。

然后执行

  1. .\b2 toolset=gcc

这个时候得到stage\lib下的.a文件。按照参考帖子,指示我们要进行重命名-x64的文件。本文发现不用重命名也行(至少在我的电脑上是这样)
此时在ASAP的根目录下找到CMakeLists.txt
找到

  1. find_package(Boost QUIET REQUIRED COMPONENTS date_time filesystem program_options regex system thread)

在这行代码的上一行写上:

  1. #set(BOOST_ROOT 你自己boost解压的路径的根目录)
  2. #set(BOOST_INCLUDE_DIR ${BOOST_ROOT})
  3. #set(BOOST_LIBRARY_DIR boost解压的路径\stage\lib)
  4. #include_directories(${BOOST_INCLUDE_DIR})
  5. #link_directories(${BOOST_LIBRARY_DIR})

到这里boost安装完成。

2、PugiXML的环境配置

解压下载的包,得到
image.png
如图的目录结构,我们发现其中有CMakeLists.txt,也就是说我们可以使用CLion进行编译,进入CLion打开该CMakeLists.txt
点击编译,选择运行项为其中的一个.cpp文件,运行,发现无法运行,结束。
之后我们得到如下的文件结构:
image.png
因此回到ASAP的根目录下找到CMakeLists.txt,找到

  1. find_package(PugiXML REQUIRED)

在上一行写入:

  1. set(PugiXML_DIR pugiXML的解压目录/cmake-build-debug)

之后打开ASAP内的文件夹:Annotation内的CMakeLists.txt
找到

  1. get_target_property(PUGIXML_INCLUDE_DIR pugixml INTERFACE_INCLUDE_DIRECTORIES)

在上一行写入

  1. set(PUGIXML_INCLUDE_DIR pugiXML的解压路径/src)

get_target_property(``PUGIXML_INCLUDE_DIR pugixml INTERFACE_INCLUDE_DIRECTORIES``) 的PUGIXML_INCLUDE_DIR改为${PUGIXML_INCLUDE_DIR}
之后打开ASAP内的文件夹:multiresolutionimageinterface内的CMakeLists.txt
同样找到

  1. get_target_property(PUGIXML_INCLUDE_DIR pugixml INTERFACE_INCLUDE_DIRECTORIES)

上一行写上:

  1. set(PUGIXML_INCLUDE_DIR pugiXML解压路径/src)

get_target_property(``PUGIXML_INCLUDE_DIR pugixml INTERFACE_INCLUDE_DIRECTORIES``) 的PUGIXML_INCLUDE_DIR改为${PUGIXML_INCLUDE_DIR}
接下来看到
image.png
这里有红色的报错,注意,这里是警告并不是报错,原因我猜测是因为作者把PugiXML直接整合到项目中了,因此会有一个target名为pugixml,但是我们把pugixml作为库引入,因此即使不存在这个target也没有问题。

3、openslide的安装

去到openslide的官网,我们下载的是
image.png
这个,其他的都不对,因为只有这里面有lib目录和include目录。
解压,不需要做其他操作。
找到

  1. find_package(OPENSLIDE REQUIRED)

上面一行写入

  1. set(OPENSLIDE_LIBRARY openslide的解压目录/lib/libopenslide.lib)
  2. //这句中要注意.lib,否则会报错,找不到__imp_openslide之类的函数。
  3. set(OPENSLIDE_INCLUDE_DIR openslide的解压目录/openslide/include/openslide)

openslide配置结束。
成功之后:
image.png

4、qt、以及openCV

比较简单,不多赘述,可以肯定的是,这两个也需要安装,但是似乎不需要写在CMakeLists.txt中,这部分有点忘记了。

5、目前的问题

仍找不到程序入口,需要找到程序入口。否则报以下错误。
image.png