【问题标题】:CMake autodetect Visual Studio directory on windowsCMake 自动检测 Windows 上的 Visual Studio 目录
【发布时间】:2016-09-22 15:43:07
【问题描述】:

目前,为了在 Windows 上创建静态库,您必须手动指定 Visual Studio 目录的位置。

cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_GNUtoMS=1 -DCMAKE_GNUtoMS_VCVARS="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" ..

CMake 有没有办法自动查询 Visual Studio 的位置? Windows-GNU.cmake 模块似乎能够在注册表中查询lib.exe 可执行文件的位置,但仍然强制用户手动指定它的位置。摘自 cmake:

  find_program(CMAKE_GNUtoMS_VCVARS NAMES vcvars32.bat
    DOC "Visual Studio vcvars32.bat"
    PATHS
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0\\Setup\\VC;ProductDir]/bin" #D
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VC;ProductDir]/bin"
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/bin"
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC;ProductDir]/bin"
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/bin"
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC;ProductDir]/bin"
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup\\Microsoft Visual C++;ProductDir]/bin"
    )

以上来自cmake 3.6.0。

【问题讨论】:

    标签: visual-studio cmake cross-platform


    【解决方案1】:

    如果构建静态库是您最关心的问题,您是否尝试过设置

    -DBUILD_SHARED_LIBS=OFF
    

    或类似(例如add_librarySTATIC)强制静态构建?

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 2015-01-03
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多