gpt4 book ai didi

更改系统头文件路径和自定义头文件

转载 作者:行者123 更新时间:2023-11-30 14:29:59 24 4
gpt4 key购买 nike

gcc 4.4.5 c89

我最近在我的开发机器上下载并安装了 log4c。我将所有标题和包含内容放在以下目录中。

project_name/tools/log4c/inc
project_name/tools/log4c/libs

但是,当我将 header 安装在系统路径中时:

/usr/include/log4c/*.h

所以在我的项目中,当我包含layout.h时。 layout.h 将在此系统路径中包含以下 header 。

#include <log4c/logging_event.h>

我在目标计算机上创建了与开发 tools/inctools/lib 时相同的目录结构。

但是,它无法编译,因为我没有在目标计算机上安装 log4c,因此 log4c 的系统路径不存在。但是,目标计算机的用户不会安装 log4c。一切都应该开箱即用。

所以我认为编辑所有标题是个好主意。从此:

#include <log4c/logging_event.h>

#include "logging_event.h"

所有 header 都在 inc 目录中,因此我不会使用系统路径。

我的问题是将所有 header 放入一个目录并编辑它们以指向这个单个 inc 目录是个好主意吗?

非常感谢您的建议,

最佳答案

我会保留 header - 更改它们可能容易出错且耗时,特别是如果您想在某个时候更新 log4c 的版本。

我的理解是否正确,/usr/include/log4c 中的 header 相同也在您的 project_name/tools/log4c/inc 中目录?如果是这样,请将它们移至project_name/tools/log4c/inc/log4c ,并将包含路径添加到您的 gcc命令行使用 -I标志:

gcc -I project_name/tools/log4c/inc myprog.c etc etc

我们正在将文件移至 log4c/inc/log4c这样<log4c/logging_event.h>仍然可以匹配 log4c log4c/inc/下的目录.

编辑:我最初打错了 -L作为标志,它设置库搜索路径而不是包含文件搜索路径。 -I是本例的正确标志。

关于更改系统头文件路径和自定义头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3956650/

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