【发布时间】:2014-05-06 10:47:25
【问题描述】:
我想以 OpenSSL 的方式在我的库项目中包含头文件。但我不能让它工作。
假设我的库项目如下所示:
C:\MYLIB
├─ A
│ ├─A.h
│ └─A.c
├─ B
│ ├─B.h
│ └─B.c
├─ C
│ ├─C.h
│ └─C.c
└─ include
└─mylib
├─A.h
├─B.h
└─C.h
现在我有一个新项目,其中包含 mylib 中的头文件。我已将 C:\MYLIB\include 添加到其他包含目录中。我的新项目中的 include 语句是:
#include <mylib\a.h>
#include <mylib\b.h>
其中 mylib\a.h 只包含一行指向真正的 A\A.h:
../../A/A.h
和 mylib\b.h 包含:
../../B.B.h
就像 OpenSSL 的方式一样。但是,我的 VS2010 抱怨“error C2059: syntax error:'.',而错误导致第一个 '.'在 mylib\a.h 中。
这些包括有意义吗?我应该如何正确包含来自 mylib 的那些头文件?
【问题讨论】:
-
我相信您需要前导点来避免您遇到的错误。试试
.\..\..\A\A.h。此外,OpenSSL 在安装时会将自身扁平化为include\mylib。它在构建期间不使用它。在构建期间,-I选项中包含各种路径。 -
我修正了您问题的标题以匹配您面临的实际问题。
-
感谢您的回复。我尝试了前导点,但它仍然不起作用。我发现了这个 SO 帖子stackoverflow.com/questions/8123667/…,它说“我猜你正在尝试在 Windows 上构建,因为 Linux 或 Unix 机器上的 tarfile 应该已经修复了所有这些符号链接。”那会是问题吗?比我在 Windows 上构建它吗?
标签: c visual-studio-2010 include