首页
学习
活动
专区
圈层
工具
发布

Cmake在windows支持预编译头文件(stdafx.h)

本文主要讲下在windows下使用cmake给项目添加预编译头文件功能,做过windows项目的同学都知道,windows下使用预编译头文件非常普遍,能加快编译速度,一些头文件交叉引用问题也能使用它来解决...PCH_SOURCE_FILE) IF(MSVC) # 获取预编译头文件的文件名,通常是stdafx GET_FILENAME_COMPONENT(PCH_NAME ${PCH_HEADER_FILE...FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/PCH) # 设置项目属性,使用预编译头文件 SET_TARGET_PROPERTIES(${PCH_TARGET...}/build/) # 预编译头文件和源文件的路径 set(STDAFX_PCH_H ${CMAKE_SOURCE_DIR}/Protocol/stdafx.h) set(STDAFX_PCH_C...定义的宏 USE_MSVC_PCH(Proxy stdafx.h ${STDAFX_PCH_C}) endif ()       好了,使用上面的方法就可以给vs的工程添加预编译头文件的支持了。

2.3K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Cmake在windows支持预编译头文件(stdafx.h)

    本文主要讲下在windows下使用cmake给项目添加预编译头文件功能,做过windows项目的同学都知道,windows下使用预编译头文件非常普遍,能加快编译速度,一些头文件交叉引用问题也能使用它来解决...PCH_SOURCE_FILE) IF(MSVC) # 获取预编译头文件的文件名,通常是stdafx GET_FILENAME_COMPONENT(PCH_NAME ${PCH_HEADER_FILE...${CMAKE_CURRENT_BINARY_DIR}/PCH) # 设置项目属性,使用预编译头文件 SET_TARGET_PROPERTIES(${PCH_TARGET} PROPERTIES...}/build/) # 预编译头文件和源文件的路径 set(STDAFX_PCH_H ${CMAKE_SOURCE_DIR}/Protocol/stdafx.h) set(STDAFX_PCH_C...定义的宏 USE_MSVC_PCH(Proxy stdafx.h ${STDAFX_PCH_C}) endif () 好了,使用上面的方法就可以给vs的工程添加预编译头文件的支持了。

    3.4K50

    【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ② ( VS 中创建 CMake 工程 | CMake 工程中配置 OpenCV 头文件 )

    文章目录 一、创建 CMake 工程 二、在 Visual Studio 的 CMake 项目中配置 OpenCV 库 1、CMakeLists.txt 配置文件说明 2、OpenCV 头文件配置...2、OpenCV 头文件配置 在上一篇博客 【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ① ( 下载 OpenCV 库 | Windows...中安装 OpenCV 库 ) 中 , 在 Windows 平台的 Y:\001_DevelopTools\032_OpenCV\opencv 目录 , 安装了 OpenCV 库 , 其头文件在如下两个目录中...; 在 CMakeLists.txt 构建脚本中 , 使用 include_directories 配置头文件 ; include_directories("Y:/001_DevelopTools/...在 CMakeLists.txt 构建脚本中配置头文件成功 , 就可以在 C++ 源码中导入头文件 , 并进行编码了 ; 在源码中导入 opencv2/opencv.hpp 头文件 , 就可以进行 OpenCV

    4.7K20

    cmake: CHECK_INCLUDE_FILE_CXX 检查是否存在 codecvt 头文件

    今天第一次使用cmake的CHECK_INCLUDE_FILE_CXX 函数检查是否存在 codecvt include文件,然而出错了(编译器使用gcc 5.4.0)。...cmake脚本如下: include(CheckIncludeFileCXX) # 检查是否存在 codecvt header file CHECK_INCLUDE_FILE_CXX(codecvt HAS_CODECVT...HAS_ALGORITHM ) message(HAS_CODECVT=${HAS_CODECVT}) message(HAS_ALGORITHM=${HAS_ALGORITHM}) 输出显示,能找到algorithm,却找不到...algorithm – Looking for C++ include algorithm - found HAS_CODECVT= HAS_ALGORITHM=1 明明我看到存在这个codecvt文件,cmake...输出就是找不到 想来codecvt是在c++11标准下才支持的文件,于是我如下增加-std=c++11 编译选项再试则问题解决 include(CheckIncludeFileCXX) set(CMAKE_REQUIRED_FLAGS

    2.9K10

    CodeBlocks no such file or directory 错误解决方案(创建类找不到头文件)

    在CodeBlocks下,有时候需要自己定义类,当然就要添加相应的头文件,但添加进去的头文件明明包含在项目中了, 但编译时还是会报错:no such file or directory;这是为什么呢...其实是一个很简单的问题,但有些人(比如说我)就会困在这儿,百度也找不到(至少我是没找到),所以写了上来.  ...为了能让编译器找到你自己的头文件,需要把头文件的存放路径告诉编译器,操作如下: 在项目/构建选项/搜索路径选项下,点击添加按钮,添加自己的头文件的存放文件夹,搞定...  ..."  编译会出现找不到头文件,得将头文件的完整路径给加上去才不会出错。...将header and implementation file shall be in same folder 这一行给勾选上去,#include "头文件" 便编译能通过,不必加上完整路径 ?

    6.5K70

    一文搞懂CMake核心语法规则与最佳实践

    /src) 作用:当C源文件中用#include "xxx.h"或#include 引入头文件时,如果头文件不在当前目录,CMake编译会找不到头文件报错,这个命令就是添加头文件的搜索路径...,编译器会自动在这些目录里找头文件。...编写根目录CMakeLists.txt(关键,多目录核心配置) 这个场景的核心是:CMake找不到include的头文件、找不到src的源文件,所以必须加两个关键配置:include_directories...标准 set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) # ========== 多目录核心配置1 ========== # 添加头文件搜索路径...error: xxx.h: No such file or directory 原因:编译器找不到头文件,头文件不在当前目录,也没添加搜索路径 解决方案:添加 include_directories(

    1.5K21

    【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

    文章目录 一、Android NDK 构建脚本 二、CMake 构建脚本示例 三、CMake 命令手册 1、CMake 脚本命令 2、CMake 工程命令 该系列博客的应用场景是 Android Studio...上述命令都是 CMake 命令 , 可以在 CMake 命令文档中查询 , 当前 CMake 中有 47 个脚本命令 , 46 个工程命令 ; CMake 构建脚本示例 : # 指定 CMake...# CMAKE_SOURCE_DIR 指的是当前的文件地址 # -L 参数指定动态库的查找路径 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR...导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 ) 复制来的 ; 三、CMake 命令手册 ---- CMake 命令分为三种 , 脚本命令...工程命令 ---- CMake 中有 46 个工程命令 , 一般在 CMake 工程中才可以使用上述工程命令 ; 46 个工程命令如下 , 详细的命令细节参考 cmake-commands(7)

    5.3K01

    CMake

    这里我们使用CMake。 在一个CMake工程中,我们会使用cmake命令生成一个Makefile文件,然后,用make命令根据这个 makefile文件的内容来编译整个工程。...(Demo main.cc) CMakeLists.txt 文件用于告诉cmake我们要对这个目录下的文件做什么事情,CmakeLists.txt 文件的内容需要遵守cmake的语法。...编译项目 在当前目录执行 cmake . ,得到 Makefile 后再使用 make 命令编译得到 Demo1 可执行文件。 cmake ....) # 项目信息 project (Demo4) # 加入一个配置头文件,用于处理 CMake 对源码的设置 configure_file ( "${PROJECT_SOURCE_DIR}/config.h.in...add_executable(Demo ${DIR_SRCS}) target_link_libraries (Demo ${EXTRA_LIBS}) 其中: 第7行的 configure_file 命令用于加入一个配置头文件

    2.4K42

    CMake学习笔记(二)——CMake语法

    系统信息预定义变量 CMAKE_MAJOR_VERSION cmake主版本号,如2.8.6中的2 CMAKE_MINOR_VERSION cmake次版本号,如2.8.6中的8 CMAKE_PATCH_VERSION...CMAKE_C_FLAGS 设置C编译选项 CMAKE_CXX_FLAGS 设置C++编译选项 二. CMake常用语法 1....[AFTER|BEFORE]:追加标志,指定控制追加或置前; [SYSTEM]:(笔者也不知道干嘛用的) dir1, …, dir n:添加的一系列头文件搜索路径; 向工程添加多个特定的头文件搜索路径,...类似于gcc中的编译参数-l,即指定编译过程中编译器搜索头文件的路径。当项目需要的头文件不在系统默认的搜索路径时,则指定该路径。 AFTER/BEFORE参数,控制追加或置前。...默认情况下,追加当前头文件搜索路径的后面。 注:如果路径包含空格,可以使用双引号将它括起来。 例: INCLUDE_DIRECTORIES(/usr/include/thrift) 6.

    7K100

    【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 )

    文章目录 一、拷贝 p7zip 源码中的头文件到 Android Studio 项目中 二、配置 CMakeLists.txt 构建脚本 1、导入动态库 2、导入头文件 三、完整 CMakeLists.txt..., 涉及的头文件目录 ; # 设置编译器参数 # -I 指定头文件引入目录 , 会引入后面目录中所有的 .h 头文件 LOCAL_CFLAGS := -DANDROID_NDK -fexceptions...构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 ) 博客 ; 注意不能使用 set_target_properties 设置导入动态库 , 这种配置在 Android 6.0 以上的系统中 , 出现找不到路径的问题.../jniLibs/${ANDROID_ABI}") 2、导入头文件 导入头文件 : 使用 include_directories 设置头文件的查找路径 ; # 设置头文件查找路径 include_directories...配置要编译的源文件 native-lib.cpp) # 使用下面的方式引入动态库会出现于 Android.mk 配置一样的问题 , 6.0 以上的 Android 系统在运行时出现找不到路径的问题

    3.6K20

    vs code + clangd + cmake + ninja 踩坑日记

    在vs code 上配置clangd需要先下载clangd插件, 而后生成compile_commands.json文件即可避免clangd插件报错:“找不到头文件”compile_commands.jsoncompile_commands.json...是clangd等工具用来提高代码跳转、补全功能的文件,在不存在compile_commands.json时,clangd会在分析自定义头文件时报错。...对于c++项目,可以采用cmake 或make的方式来构建项目,而cmake和makefile均有对应的生成compile_commands.json文件的方法。...可以通过如下命令来生成“compile_commands.json”cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=True ..cmake cachecmake在编译时会生成缓存文件...而cmake可以通过简单的配置来生成ninja构建所需要的文件。//在build目录下cmake .. -G "Ninja"

    5.4K00
    领券