繁体   English   中英

编译器找不到预处理器指令(定义)

[英]Preprocessor directive (define) not found by compiler

我正在开发一个库,其中某些变量的大小取决于#define,而某些#define取决于其他#define的值而创建。

例如

int variable1[SIZE_USER]
#if SIZE_USER>3
  #define CONDITION 1
#else
  #define CONDITION 0
#endif

这个想法是,当用户想要使用该库时,他们会在其中创建带有所有所需预处理指令(#define)的头文件,并在与“ main.cpp”文件相同的目录中使用该文件,而不是在同一目录中使用该文件。在库源文件中。

问题是,当我将配置文件(具有所有#define的文件)包含在库的所有头文件所在的同一目录中时,我没有问题。

#include <config.h>
//My Library Code...

但是,如果我在库的源文件之外声明配置头文件,则编译器将找不到在“ main.cpp”文件中声明的#define。

#include<config.h>
#include<myLibrary.h>
//User code...

关于编译器的工作方式,我是否缺少明显的东西?

#define SIZE_USER 4

int variable1[SIZE_USER]
#if SIZE_USER > 3
  #define CONDITION 1
#else
  #define CONDITION 0
#endif

第一个问题是#if指令中缺少空格。

#include "myLibrary.h"

第二个问题:对包含的标题和空格使用“”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM