gcc 4.4.5 c89


我最近在开发计算机上下载并安装了log4c。
我将所有标头放在下面的目录中。

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


但是,当我将标题安装在系统路径中的位置时:

/usr/include/log4c/*.h


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

#include <log4c/logging_event.h>


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

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

因此,我认为一个好主意是编辑所有标题。由此:

#include <log4c/logging_event.h>




#include "logging_event.h"


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

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

非常感谢您的任何建议,

最佳答案

我将不理会标头-更改标头可能容易出错且耗时,特别是如果您想在某个时候更新log4c的版本时。

我是否正确理解/usr/include/log4c中的相同标头也位于您的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是这种情况下的正确标志。

07-25 20:53