Go to file
xiaoyuluoke 84038bd104 添加cmake笔记 2022-09-30 13:50:23 +00:00
.gitignore Initial commit 2020-08-26 03:31:55 +00:00
LICENSE Initial commit 2020-08-26 03:31:55 +00:00
README.md 添加cmake笔记 2022-09-30 13:50:23 +00:00

README.md

cmake_lib_template

cmake 库模板

cmake设置安装路径

set(CMAKE_INSTALL_PREFIX d:/libs/sdl2)

cmake编译库区分debug和release版本

set(CMAKE_DEBUG_POSTFIX "d")

cmkae编译应用程序去掉cmd终端

  add_executable(${PROJECT_NAME} WIN32
    ${SRC_FILES}
    mainwindow.ui
    
  )

cmake在windows下编译安装cairo

set(CMAKE_DEBUG_POSTFIX "d")
set(CMAKE_INSTALL_PREFIX c:/libs/cairo)

set(PIXMAN_INCLUDE_DIR "c:/libs/pixman/include/pixman-1")
set(PIXMAN_LIBRARY "c:/libs/pixman/lib/pixman-1_staticd.lib")

set(ZLIB_INCLUDE_DIR "c:/libs/zlib/include")
set(ZLIB_LIBRARY "c:/libs/zlib/lib/zlibd.lib")

set(PNG_INCLUDE_DIR "c:/libs/libpng/include/libpng16")
set(PNG_LIBRARY "c:/libs/libpng/lib/libpng16d.lib")
set(BIZP2_INCLUDE_DIR "C:/libs/bzip2/include")
set(BZIP2_LIBRARIES "C:/libs/bzip2/lib/bz2d.lib")
set(FREETYPE_INCLUDE_DIR "C:/libs/freetype2/include/freetype2/freetype")
set(FREETYPE_LIBRARY "C:/libs/freetype2/lib/freetyped.lib")

在编译cairo时有可能出现找不到unistd.h文件,原因是在编译freetype2的配置文件C:\Strawberry\c\include\freetype2\config\ftconfig.h默认的HAVE_UNISTD_H变量为1,改为0屏蔽掉unistd.h文件即可

在命令行下使用visual studio

VS
Path C:\software\vs2019\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64
INCLUDER C:\software\vs2019\VC\Tools\MSVC\14.28.29333\include
LIB C:\software\vs2019\VC\Tools\MSVC\14.28.29333\lib\x64

Windows

在vscode中配置cmake的编译工具链

编辑配置文件 C:\Users\Asus\AppData\Local\CMakeTools\cmake-tools-kits.json

在cmake中设置和使用环境变量

$ENV{NAME} 调用系统环境变量,我们也可以使用 SET(ENV{NAME} value)

在cmake中配置esp32的开放环境

#在环境变量PATH中添加各目标的编译器路径VSCODE即可扫描到改编译工具链
SET(ENV{IDF_PATH} "E:/esp-ide/esp-idf")   #指定IDF_PATH路径
SET(IDF_TARGET "esp32c3")                 #指定目标为esp32c3
SET(ENV{IDF_PYTHON_ENV_PATH} "E:/esp-ide/.espressif/python_env/idf4.3_py3.8_env") #指定python虚拟环境

设置cmake生成器 Ninja的执行路径

set(CMAKE_MAKE_PROGRAM  "C:\\software\\explab\\tools\\ninja\\ninja.exe") 

cmake设置 MTd

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

cmake编译库区分debug和release版本

if(${CMAKE_BUILD_TYPE} STREQUAL  "Debug")