c++ 包含目录是否有pragma指令?

jslywgbw  于 2023-02-20  发布在  其他
关注(0)|答案(6)|浏览(130)

正如标题所说:使用VS20**C++是否有include目录的pragma指令?我认为类似于:

#pragma comment(include, "..\externals\blah\includes\")

这样我就可以在这个样式中使用include,blah. h也可以在里面使用这个样式?

#include <blah.h>

我知道我可以在我的项目设置中设置include目录,但是我要求一个预处理器指令,因为否则我将不得不为每个编译器配置文件设置它。
问候Nem

63lcw9qa

63lcw9qa1#

您可以创建一个txt文件(例如IncludeDirs.txt)。在该文件中,您可以添加包含文件夹:

/I "."
/I ".."
/I ".\OtherFolder"

然后在 * 属性-〉配置属性-〉C/C++-〉命令行 * 中添加以下字符串:

@includedirs.txt

您可以为每个概要文件(调试、发布等)创建不同的文件。

wlsrxk51

wlsrxk512#

我不认为有任何方法可以做到这一点。include_alias只在逐个文件的基础上有用。

eaf3rand

eaf3rand3#

可以创建一个**.props**文件,其中包含所选的选定项目特性。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ImportGroup Label="PropertySheets" />
    <PropertyGroup>
        <IncludePath>C:\ExampleDir\Include;$(IncludePath)</IncludePath>
    </PropertyGroup>
</Project>

可以从**.vcxproj文件中移动现有属性块。
它还可能包含属性的每个
Configuration**条件(这也是您可以从.vcxproj文件内部了解的内容)。

  • 重要提示 *:需要从“属性管理器”选项卡引用.props文件

[View] - [Property Manager]菜单-选择[Add Existing Property Sheet...]
同时集中于特定的构建配置。
这些属性文件可以在不同的项目之间很好地重用。结合环境变量值(例如使用$(MySdkPath)而不是直接的“C:\MySdk”),这种方法提供了一个很好的通用解决方案。

cotxawn7

cotxawn74#

我不知道有什么。
不久前我解决了这个问题,在每个目录中创建“all”和“all.cpp”文件,以包含每个头文件和源文件。创建和维护需要一些手工工作,但我相信这是值得的。这样我就可以写一些类似#include <Frigo/Math/all>的东西。甚至可以创建一个脚本来自动更新它们。

bjg7j2ky

bjg7j2ky5#

您可以将“主文件夹”添加到项目属性中,然后将正确的文件夹放入include指令中,例如:
文件夹**“包括”及其子文件夹“Unicode”/“ASCII”**,两者都具有名为“String. h”的头文件(不应使用相同的名称)
在代码中用途:

#ifdef UNICODE // or your preprocessor flag
#  include <Unicode/string.h>
#else 
#  include <ASCII/string.h>
#endif

也可以使用DEBUG或任何关键字,只要在Project-Settings --> C/C++ --> Preprocessor --> Preprocessor defintions中指定它即可

rqqzpn5f

rqqzpn5f6#

我来晚了,但我尽力了

#define path_include <C:/foo_folder/##a>

然后

#include path_include(blah.h)

#include path_include(bluh.h)

它起作用了。

相关问题