【问题标题】:Syntax error when trying to include header files尝试包含头文件时出现语法错误
【发布时间】: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


【解决方案1】:

这个

#include <mylib\a.h>
#include <mylib\b.h>

看起来不对(或者准确地说:它伤害了我的眼睛.. ;-)

您可能喜欢使用斜线:

#include <mylib/a.h>
#include <mylib/b.h>

【讨论】:

  • 对不起你的眼睛^^" 我按照你的建议用斜线替换它,它仍然不起作用......
  • @ChiaraHsieh:什么不起作用?使用反斜杠时会出现与以前相同的错误吗?
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
相关资源
最近更新 更多