• mingw64+msys2下使用cmake问题


    直接pacman -S cmake 安装的并不好用,直接下载windows版本的cmake. 比如安装在D:\cmake下. 然后设置环境变量

    export PATH=D:/cmake/bin:$PATH 

    然后编辑一个 toolchain-mingw64.cmake文件:

    SET(CMAKE_SYSTEM_NAME Windows)
    SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
    SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
    SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
    SET(CMAKE_RANLIB x86_64-w64-mingw32-ranlib)

    SET(CMAKE_ASM_YASM_COMPILER yasm)

    保存后。

    接下来: cmake -G"Unix Makefiles" . -DCMAKE_TOOLCHAIN_FILE=toolchain-mingw64.cmake 就可以生成makefile文件.

    注意上面的 toolchain-mingw64.cmake内容 这些变量可能要根据实际情况设置。

    还有个问题,mingw64生成的dll往往依赖libgccxxx.dll 和 libstdc++.dll, 如何不依赖,给 toolchain-mingw64.cmake加入下面的代码即可

    SET(CMAKE_CXX_FLAGS "-static-libgcc -static-libstdc++ -static")
    SET(CMAKE_C_FLAGS "-static-libgcc -static-libstdc++ -static")
    SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-static-libgcc -static-libstdc++ -static")

    SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-static-libgcc -static-libstdc++ -static")

    到此为止应该能帮你解决掉部分问题。

  • 相关阅读:
    [转]Modernizr的介绍和使用
    java动态代理使用详解
    ajax上传文件以及使用中常见问题处理
    cmd下查询端口占用以及根据进程id名称结束进程
    水平居中 垂直居中
    inline-block和float
    一起入门前端(三)
    一起入门前端(二)
    一起入门前端(一)
    WPF初学——自定义样式
  • 原文地址:https://www.cnblogs.com/daniulivesdk/p/10957919.html
Copyright © 2020-2023  润新知