gpt4 book ai didi

c++ - MACRO 取决于其文件夹位置

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:09 24 4
gpt4 key购买 nike

在以下文件中:

app/main.cpp
app/config.hpp
app/show.hpp
app/file.hpp

lib/append.hpp
lib/clear.hpp
lib/reopen.hpp
lib/crypt.hpp

我有一个问题。想象一下我的一些文件使用 lib/crypt.hpp。例如在 app/file.hpp 我应该写:

#include "../lib/crypt.hpp"

如果我把这个文件放到 lib 文件夹中,它就不再工作了。所以我需要一个类似的东西:

#include "LIB/crypt.hpp"

所以,这个LIB/在lib目录下的意思是(empty),而它的意思是"../lib/"在应用程序目录中。

那么我就不用担心将 file.hpp 从 app 移动到 lib 了。我只需要修复它的调用者。但不是它所说的。

类似于网络编程框架的概念。在 C/C++ 中可以吗?

最佳答案

根据您所写的内容,您正在寻找一种方法来移动您的源代码,而不必担心 header 的硬编码路径。

你没有指定你正在使用的编译器,所以我不关注特定的编译器,无论如何大多数 C++ 编译器都有一个选项 to specify one or more header search paths (在 gcc 上,您只需使用 -Ilib_parent_dir 之类的东西)。

一旦将库的父路径包含到搜索列表中,就可以移动源(只要不移动库的 header )并让它们包含正确的 header ,例如 #include <lib/crypt.hpp>。 (和 keep include paths priority in mind)

这应该是一种更清晰、更简单的方法来实现您的要求,而不是使用宏。

关于c++ - MACRO 取决于其文件夹位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29364063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com