1、使用anaconda创建虚拟环境:

  1. name: test
  2. channels:
  3. - conda-forge
  4. - bioconda
  5. - defaults
  6. - saedrna
  7. dependencies:
  8. - cmake
  9. - qt
  10. - opencv
  11. - boost=1.72
  12. - libtiff
  13. - jasper
  14. - swig
  15. - pugixml
  16. - zlib
  17. - openjpeg
  18. - openimageio

然后执行命令:
conda env create -n asap(虚拟环境名) -f env.yml(上面的环境名称)
然后想要进入asap则需要
https://blog.csdn.net/kdongyi/article/details/81905494
退出base环境,还有更改启动时自动base环境。(在windows下的powershell设置)
https://www.cnblogs.com/brady-wang/p/12771441.html
然后activate asap就进去了

2、建立一个build.bat

内容如下:

  1. mkdir build
  2. cd build
  3. cmake -G "Visual Studio 16 2019" -A X64 -T host=x64 ^
  4. -DCMAKE_TOOLCHAIN_FILE=%CONDA_PREFIX%\h2o.cmake ^
  5. -DCMAKE_BUILD_TYPE=RelWithDebInfo ^
  6. -DCMAKE_INSTALL_PREFIX=./install ^
  7. -DBUILD_EXECUTABLES=ON ^
  8. -DBUILD_ASAP=ON ^
  9. -DBUILD_IMAGEPROCESSING=ON ^
  10. -DPACKAGE_ON_INSTALL=ON ^
  11. ../
  12. CD ..

mkdir 建立一个文件夹,叫build
cd 去到build文件夹下
cmake -G “Visual Studio 16 2019” -A X64 -T host=x64 ^ 执行cmake,在这之前需要环境变量配置
-DCMAKE_TOOLCHAIN_FILE=%CONDA_PREFIX%\h2o.cmake ^ 找到工具链,h2o.cmake
-DCMAKE_BUILD_TYPE=RelWithDebInfo ^ 设置编译类型
-DCMAKE_INSTALL_PREFIX=./install ^ 设置安装路径(指编译成功后生成exe文件的路径)
-DBUILD_EXECUTABLES=ON ^ 查看cmakelists可以知道,BUILD_EXECUTABLES被设置成了OFF,只能在这个地方进行打开。如果在cmakelists下将OFF改为ON,则不起作用。
-DBUILD_ASAP=ON ^ 打开BUILD_ASAP的开关
-DBUILD_IMAGEPROCESSING=ON ^ 打开BUILD_IMAGEPROCESSING的开关
-DPACKAGE_ON_INSTALL=ON ^ 打开PACKAGE_ON_INSTALL的开关
../
CD .. 返回上一级

3、在根目录下的cmakelists添加set语句

  1. set(OPENSLIDE_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/openslide/include/openslide.lib)
  2. set(OPENSLIDE_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/openslide/lib/libopenslide.lib)
  3. set(DCMTKJPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/dcmtk)
  4. set(PUGIXML_HOME ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/pugixml/cmake-build-debug)
  5. set(UNITTEST_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/unittest/include)
  6. set(UNITTEST_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/unittest/lib/UnitTest++_d.lib)

set(OPENSLIDE_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/openslide/include/openslide.lib)
设置opensilde库的头文件路径,${CMAKE_CURRENT_LIST_DIR}指当前cmakelists所在路径。ThirdParty是自己新建的文件夹,要把所有库放在该路径下,这里设置ThirdParty是为了和作者的库版本一致。
.lib文件为windows格式的静态库。.dll则是windows环境下的动态库。

set(OPENSLIDE_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/openslide/lib/libopenslide.lib)
这里我的理解是,导出的库.lib,是各种类的申明,实现则被分装在lib目录的lib文件中。

其余set语句都差不多,实际上,是要和后面的find_package联合起来用。

4、对pugixml_include.cmake进行重新编写

  1. # - Find PugiXML library
  2. # Find the native PugiXML includes
  3. # This module defines
  4. # PugiXML_INCLUDE_DIR, where to find PugiXML.hpp
  5. # PugiXML_FOUND, If false, do not try to use PugiXML.
  6. find_path (PUGIXML_INCLUDE_DIR
  7. NAMES pugixml.hpp
  8. PATHS ${PUGIXML_HOME}/include)
  9. find_library (PUGIXML_LIBRARY
  10. NAMES pugixml
  11. PATHS ${PUGIXML_HOME}/lib)
  12. # handle the QUIETLY and REQUIRED arguments and set PugiXML_FOUND to TRUE if
  13. # all listed variables are TRUE
  14. include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
  15. FIND_PACKAGE_HANDLE_STANDARD_ARGS(PugiXML DEFAULT_MSG PUGIXML_LIBRARY
  16. PUGIXML_INCLUDE_DIR)
  17. if (PugiXML_FOUND)
  18. set (PUGIXML_LIBRARIES ${PUGIXML_LIBRARY})
  19. if (NOT PugiXML_FIND_QUITELY)
  20. message (STATUS "PugiXML include=${PUGIXML_INCLUDE_DIR}")
  21. message (STATUS "PugiXML library=${PUGIXML_LIBRARY}")
  22. endif()
  23. else ()
  24. message (STATUS "No PugiXML found")
  25. endif()
  26. mark_as_advanced(PUGIXML_LIBRARY PUGIXML_INCLUDE_DIR)

5、在annotation模块中的cmakelists更改如下内容

在cmakelists中找到:

get_target_property(pugixml_include_dir ……..)
用#将其注释。没有这个属性,因此,注释掉。

6、执行bulid.bat

在vscode的终端或者命令行中,输入bulid.bat,回车执行,这个时候会有报错,跟着报错指示修改。
另外,ThirdParty中的pugixml需要进行,编译才能使用。
我已经编译好,放入ThirdParty中了,即不需要进行其他操作。

7、最后一步

最后看如果没有报错,就输入di,然后tab键,打开.sln文件,之后就自动进入了vs中,进入vs后,
点击
image.png
设置
image.png
把所有项目build一下,没有报错即安装成功。
另外把环境变量设置一下,则不会出现qt报错。
)0EI9O@D@IGZVH73G1BF){L.png

这里要注意是anaconda下的pkgs中的platform。