![没有这样的文件或目录,但文件存在?](https://linux22.com/image/204610/%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%EF%BC%8C%E4%BD%86%E6%96%87%E4%BB%B6%E5%AD%98%E5%9C%A8%EF%BC%9F.png)
我正在尝试在 Ubuntu 20.04 上从 Azure gcc 以下项目:https://github.com/Azure/azure-umqtt-c
当我通过 cmake 安装项目时,我尝试 gcc mqtt_client.c,但遇到以下错误:
omic@omic-virtual-machine:~/azure-umqtt-c/src$ gcc mqtt_client.c
mqtt_client.c:18:10: fatal error: azure_umqtt_c/mqtt_client.h: No such file or directory
18 | #include <azure_umqtt_c/mqtt_client.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
但是,当我转到 azure-umqtt-c/inc/azure-umqtt-c 时,文件 mqtt_client.h 存在。有人可以帮助我并让我理解为什么会发生这种情况吗?
谢谢!
答案1
好吧,您希望编译器查找任意inc/
子目录中的包含内容。怎么gcc
知道呢?
您可以告诉 GCC 您希望它使用标志来查找目录-I
,例如gcc -Iinc/ ...
。
但老实说:如果没有构建系统,您就无法构建 C 代码,该系统将为您正确设置此类标志(您还缺少很多其他标志,这一切都毫无意义!)。您链接到的存储库甚至告诉您如何做到这一点(涉及的部分cmake
),您只是没有遵循说明!