如何在Make文件中定义#define

n17*_*911 12 c makefile autotools

在我的c/c ++文件中,有多个#define.举个例子:

#ifdef LIBVNCSERVER_HAVE_LIBZ
  /* some code */
#ifdef LIBVNCSERVER_HAVE_LIBJPEG
  /* some more code */
Run Code Online (Sandbox Code Playgroud)

你能否告诉我如何修改我的Makefile.in以便在编译期间在所有文件中都有#define ?

谢谢.

YOU*_*YOU 19

-DLIBVNCSERVER_HAVE_LIBZ -DLIBVNCSERVER_HAVE_LIBJPEG
Run Code Online (Sandbox Code Playgroud)

你可以通过那些CPPFLAGS,

CPPFLAGS = -DLIBVNCSERVER_HAVE_LIBZ -DLIBVNCSERVER_HAVE_LIBJPEG
Run Code Online (Sandbox Code Playgroud)

或制作新变量

CUSTOMDEFINES = -DLIBVNCSERVER_HAVE_LIBZ -DLIBVNCSERVER_HAVE_LIBJPEG
Run Code Online (Sandbox Code Playgroud)

并传递给 CPPFLAGS = -DEXISTINGFLAGS $(CUSTOMDEFINES)

那些终于会传递给 gcc/g++ -D...

$(CC) $(CPPFLAGS)
Run Code Online (Sandbox Code Playgroud)

  • afaik预处理器标志实际上应该转到`CPPFLAGS` (3认同)
  • cpp表示C预处理程序,CXX前缀用于C ++ (2认同)