例如,当编写NGINX模块并需要包含来自所述模块的头文件时,我该怎么做?
#include <ngx_core.h>
#include <ngx_http.h>
很自然地,头文件找不到,因为它们在磁盘上不存在。我怀疑解决这个问题的正确方法是引入整个NGINX源文件的头文件,这样我就可以在我的模块中引用这些头文件。
我在这里寻找设计时编译器的反馈,而不是寻找编译时的支持,因为模块是使用NGINX的configure
脚本构建的,该脚本处理编译的连接。
更具体地说,我如何在VS代码中解决这个问题,而不把所有的NGINX头文件带到我的src
目录中?是否有我需要的某种符号文件?
如果我需要一个顶层的lib目录和头文件,这很好,但是我不能在我的源文件中更改include路径(所以我不能将include路径更改为../lib/nginx/ngx_core.h
),因为这在编译时会失败。
1条答案
按热度按时间uxhixvfz1#
我能够通过克隆NGINX repo(和其他我需要的)并将include路径添加到我的项目的VS代码配置中,以便C/C++扩展可以找到它们来解决这个问题。
.vscode/c_cpp_属性.json
对于NGINX,这需要您下载/GZip版本,将其解压缩到您想要的位置,然后运行
./configure
--这将在objs
中生成一些必需的内容/头文件。