VisualStudio 跨平台 (Linux) 项目中的预编译头文件

Ged*_*nas 5 c++ linux cross-platform precompiled-headers visual-studio

常规VisualStudio 项目中,您可以通过转到Configuration Properties -> C/C++ -> Precompiled Headers来设置预编译头。在此输入图像描述

但是,在处理跨平台(Linux) 项目时,缺少预编译头选项。

在此输入图像描述

有没有办法配置预编译头?

Ged*_*nas 0

显然,在 VisualStudio 2022 中仍然没有简单的方法来添加对预编译头的支持。但幸运的是,我在GTANAdam的 Github 页面上偶然发现了这个有趣的解决方案: https://gist.github.com/GTANAdam/3703fd5cb70d9a22159f58443a129f8b

通过一些小的改变,我成功地使我的项目正常工作。

chmod +x precompile.sh是必需的,否则您可能会收到错误bash: ./precompile.sh: Permission denied 并且我没有使用建议,而是sh precompile.sh最终使用了./precompile.sh. 此外,该precompile.sh文件现在包含标头#!/bin/bash(而不是#!/bin/sh

在此输入图像描述

我的文件示例precompile.sh

#!/bin/bash

gch="PCH.hpp.gch"
header="PCH.hpp"

function compile
{
    echo "Generating precompiled header.."
    g++ -I../ -std=c++14 -c -x c++-header PCH.cpp -o PCH.hpp.gch 
}

if [[ -f $gch ]]; then # File exists
  if [[ $header -nt $gch ]]; then
    compile
  else 
    echo "Precompiled header already exists.."
  fi
else 
    compile
fi
Run Code Online (Sandbox Code Playgroud)

有些事情需要注意。如果您在 Windows 平台上编辑 bash 脚本文件,请注意,在 Windows 上,在脚本的每个新行中,文本编辑器可能会添加 CR LF 而不仅仅是 LF,并且 Linux bash 可能会开始丢弃如下错误:: not foundsh: 2: precompile.sh: