【问题描述】

下述Makefile中:


-DDARRAY_TEST和-lcontainer怎么理解呢?

【分析】

(1) -DDARRAY_TEST

利用man gcc查看gcc手册, -DDARRAY_TEST在gcc手册中解释如下:


可以看出-D后跟的是一个宏名。这个宏名为DARRAY_TEST。

这个宏名用于.c文件中,譬如dlist.c:


如果不指定宏名,上述宏包含的代码在预处理阶段就不会被包含。这样定义有个好处,那就是只有在gcc编译时,使用了-Dmacro标识,macro宏才会被预处理。这样,在一个工程中,如果包含多个main函数也没有关系,只要编译时,指定宏,执行相应的main就好了。

 

(2) -lcontainer

-lname链接成为libname.a(静态库)或者libname.so(动态库)的库文件。因此-lcontainer就是链接libcontainer.so文件。



 

相关文章:

  • 2021-10-09
  • 2022-01-11
  • 2021-09-14
猜你喜欢
  • 2021-06-13
  • 2021-05-25
  • 2021-08-24
  • 2022-01-31
  • 2022-12-23
  • 2021-04-05
相关资源
相似解决方案