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/inc
和tools/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
是这种情况下的正确标志。