【问题标题】:How to configure cmake for msys2如何为 msys2 配置 cmake
【发布时间】:2017-09-03 09:56:36
【问题描述】:

我在 msys2 中使用外部 cmake,因为 msys2 提供的 cmake-gui 无法运行(无效的 win32 应用程序)。现在的问题是我只能使用 cmake-gui 进行配置。我今天下载了OpenALSoft,当我运行make install 时,它安装到C:\Program Files (x86)\。如何根据运行的内容配置外部 cmake 以安装到 mingw32mingw64?最重要的是,我在区分 PATH RPATHPREFIX 时遇到了问题(以及它们如何对应于 msys2 安装结构),所以如果你可以,请澄清这些,我真的很感激那个。

【问题讨论】:

    标签: cmake msys2 cmake-gui


    【解决方案1】:

    我总是使用这个调用来确保安装目录设置为/mingw32/mingw64

    MSYS2_ARG_CONV_EXCL=- cmake . -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=$MINGW_PREFIX
    

    然后当你想安装构建的项目时,你必须这样做:

    make install DESTDIR=/
    

    所有这些技巧都是因为 CMake 是一个原生 Windows 程序,它不理解像 / 这样的 MSYS2 样式路径,并且 MSYS2 在检测到您正在运行本机时会发生一些路径的自动转换CMake 等 Windows 程序。

    顺便说一句,MSYS2 的cmake-gui 对我有用,所以也许你应该尝试在 MSYS2 中重新安装 CMake 包之类的。但是,我希望我的答案适用于外部 CMake 和 MSYS2 中的那个。

    【讨论】:

    • 应该为每个项目运行。我正在尝试通过 GUI(独立版本)执行所有与 CMake 相关的操作,例如将 CMAKE_INSTALL_PREFIX 设置为 C:/msys64/mingw64。但我只想做一次所有的改变,而不是每个项目。我尝试制作一个工具链文件,但没有足够的信息。另外,上次更新后,msys2的cmake-gui报错qt5 dll,我无意为cmake-gui安装12GB的QT5。
    • 感谢有关“-DCMAKE_INSTALL_PREFIX”和“make install DESTDIR=/”的提示!我使用了这个,并且本机 Msys2 cmake/make 最终尝试安装在 /usr/local 而不是 /Program Files.... 但是,尽管 Cmake/make 说它安装在 /usr/local/bin 中,但那里什么也没有。有什么线索吗?
    • 忽略我的问题。这是由我在 CMakeList.txt 中明确设置 CMAKE_INSTALL_PREFIX 引起的,这在某种程度上干扰了这个解决方案。对不起。
    猜你喜欢
    • 2021-03-16
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多