zoukankan      html  css  js  c++  java
  • CMake的一些正确姿势

    0,设置Debug / Release:

    CMakeLists.txt:

    SET(CMAKE_BUILD_TYPE "Debug”)
    or
    SET(CMAKE_BUILD_TYPE "Release")

    用参数设置

    mkdir Release  
    cd Release  
    cmake -DCMAKE_BUILD_TYPE=Release ..  
    make  
    
    mkdir Debug  
    cd Debug  
    cmake -DCMAKE_BUILD_TYPE=Debug ..  
    make  

    1,output data file position

    2020/1/21 分析VS2019的CMAKE过程

    1> 已为配置“x64-Debug”启动 CMake 生成。
    1> 命令行: "cmd.exe" /c ""D:PROGRAM FILES (X86)MICROSOFT VISUAL STUDIO2019PROFESSIONALCOMMON7IDECOMMONEXTENSIONSMICROSOFTCMAKECMakeincmake.exe"  
    -G
    "Ninja"
    -DCMAKE_INSTALL_PREFIX:PATH=
    "D:plugin_devcppcpp_testCMake_VSCMakeVS_01outinstallx64-Debug"
    -DCMAKE_CXX_COMPILER:FILEPATH=
    "D:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe"
    -DCMAKE_C_COMPILER:FILEPATH=
    "D:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe"
    -DCMAKE_BUILD_TYPE=
    "Debug"
    -DCMAKE_MAKE_PROGRAM=
    "D:PROGRAM FILES (X86)MICROSOFT VISUAL STUDIO2019PROFESSIONALCOMMON7IDECOMMONEXTENSIONSMICROSOFTCMAKENinja inja.exe"
    "D:plugin_devcppcpp_testCMake_VSCMakeVS_01" 2>&1" 1> 工作目录: D:plugin_devcppcpp_testCMake_VSCMakeVS_01outuildx64-Debug 1> [CMake] -- The C compiler identification is MSVC 19.24.28315.0 1> [CMake] -- The CXX compiler identification is MSVC 19.24.28315.0 1> [CMake] -- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe 1> [CMake] -- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe -- works 1> [CMake] -- Detecting C compiler ABI info 1> [CMake] -- Detecting C compiler ABI info - done 1> [CMake] -- Detecting C compile features 1> [CMake] -- Detecting C compile features - done 1> [CMake] -- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe 1> [CMake] -- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe -- works 1> [CMake] -- Detecting CXX compiler ABI info 1> [CMake] -- Detecting CXX compiler ABI info - done 1> [CMake] -- Detecting CXX compile features 1> [CMake] -- Detecting CXX compile features - done 1> [CMake] -- Configuring done 1> [CMake] -- Generating done 1> [CMake] -- Build files have been written to: D:/plugin_dev/cpp/cpp_test/CMake_VS/CMakeVS_01/out/build/x64-Debug 1> [CMake] 1> 已提取包含路径。 1> 已提取 CMake 变量。 1> 已提取源文件和标头。 1> 已提取代码模型。 1> CMake 生成完毕。

    上面的一定是Naja Makefile.竟然不是NMake......

    所以要在别的编辑器上例如Qt IDE:

     QT Ide认 编译器 的方法是在一个Bat文件,这个bat会设置环境变量,应该是从这里面解析的:

    CLION就比较智能:

    OPENGL+ASSIMP

    cmake_minimum_required(VERSION 3.5)
    
    project(Triangle)
    
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    # OPENGL
    find_package(OpenGL REQUIRED)
    include_directories(${OpenGL_INCLUDE_DIRS})
    link_directories(${OpenGL_LIBRARY_DIRS})
    add_definitions(${OpenGL_DEFINITIONS})
    
    if(NOT OPENGL_FOUND)
        message(ERROR " OPENGL not found!")
    endif(NOT OPENGL_FOUND)
    
    # GLEW
    set(GLEW_HOME D:/plugin_dev/libs/glew-2.1.0)
    include_directories(${GLEW_HOME}/include)
    link_directories(${GLEW_HOME}/lib/Release/x64)
    
    # GLFW
    set(GLFW_HOME D:/plugin_dev/libs/glfw-3.3.1.bin.WIN64)
    include_directories(${GLFW_HOME}/include/)
    link_directories(${GLFW_HOME}/lib-vc2019)
    
    # STB
    include_directories(D:/plugin_dev/libs/stb)
    
    # GLM
    include_directories(D:/plugin_dev/libs/GLM_include)
    
    # Assimp
    include_directories(D:/plugin_dev/libs/assimp-5.0.1_bin/win_vs2019/include)
    
    if(CMAKE_BUILD_TYPE STREQUAL Debug)
        message(">> Cmake will use debug mode to link debug lib")
        link_directories(D:/plugin_dev/libs/assimp-5.0.1_bin/win_vs2019/Debug) # we first link the debug
        link_libraries(assimp-vc142-mtd)
    else()
        link_directories(D:/plugin_dev/libs/assimp-5.0.1_bin/win_vs2019/Release) # we first link the debug
        link_libraries(assimp-vc142-mt)
    endif()
    
    
    # output excutable dir
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
    
    
    # SRC FILE
    FILE(
        GLOB
        SRC
        *.cpp *.h
        )
    
    add_executable(Triangle ${SRC})
    target_link_libraries(Triangle glew32s glfw3 opengl32 )
  • 相关阅读:
    四叉树空间索引原理及其实现
    深入理解空间搜索算法 ——数百万数据中的瞬时搜索
    空间索引
    Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题
    Visual studio 2017 中的Javascript智能提示与调试
    EasyUI Tooltip 提示框
    java编程中的断言工具类(org.springframework.util.Assert)
    Guava学习笔记:Google Guava 类库简介
    Jquery autocomplete插件
    easyui-textbox
  • 原文地址:https://www.cnblogs.com/gearslogy/p/7435202.html
Copyright © 2011-2022 走看看