C 包含.h文件和可移植性的正确方法

C 包含.h文件和可移植性的正确方法,c,include,portability,C,Include,Portability,我想在我的C文件中包括“curl.h”,但我注意到curl.h出现在“/usr/include/curl/curl.h”中 这让我有两个选择。我可以使用(选项1):#include或(选项2)#include 并使用-I/usr/include/curl/ 此外,pkg config--cflags libcurl返回一个空结果,因此假设我想使用pkg config生成编译选项,那么正确的选择似乎是第一个。然而,我有点担心可移植性,因为现在我的程序中硬编码curl.h必须在curl子目录中。你觉

我想在我的C文件中包括“curl.h”,但我注意到curl.h出现在“/usr/include/curl/curl.h”中

这让我有两个选择。我可以使用(选项1):
#include
或(选项2)
#include
并使用
-I/usr/include/curl/


此外,
pkg config--cflags libcurl
返回一个空结果,因此假设我想使用pkg config生成编译选项,那么正确的选择似乎是第一个。然而,我有点担心可移植性,因为现在我的程序中硬编码curl.h必须在curl子目录中。你觉得怎么样?

为什么不同时包括这两个呢?这样在两种情况下都会起作用。很多人(包括我)会认为第一个是正确的。code>/usr/include是一个标准的include目录,它由编译器及其预处理器自动搜索,为什么要在搜索子目录中添加标志?相当于f.e.为什么不同时包含这两个?这样在两种情况下都会起作用。很多人(包括我)会认为第一个是正确的。code>/usr/include是一个标准的include目录,它由编译器及其预处理器自动搜索,为什么要向搜索子目录添加标志?相当于f.e。