程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了g++ -I 包含所有带有头文件的子目录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决g++ -I 包含所有带有头文件的子目录?

开发过程中遇到g++ -I 包含所有带有头文件的子目录的问题如何解决?下面主要结合日常开发的经验,给出你关于g++ -I 包含所有带有头文件的子目录的解决方法建议,希望对你解决g++ -I 包含所有带有头文件的子目录有所启发或帮助;

我刚刚偶然发现 this post 关于编译所有 .cpp 文件,包括使用 linux find 命令的子目录中的文件:

g++ -g $(find RootFoldername -type f -iregex ".*\.cpp") -o Outputname

这样做的问题是所有文件都需要在执行 #include 时写出它们的相对路径才能工作。您可以通过使用 -I 标签添加您需要的任何目录来绕过它:

g++ -g $(find RootFoldername -type f -iregex ".*\.cpp") -o Outputname -I ./somePath

但是如果您有多个子目录,这仍然很麻烦。是否可以再次使用 find 和其他正则表达式来包含所有子目录?

解决方法

是否可以再次使用 find 和其他正则表达式来包含所有子目录?

是的 - 某些项目,如 mbed 和 arduino,似乎包含所有可能的目录以包含路径。在 shell 中假设没有空格,您可以:

find . -type f -iname '*.h' -printf "-I%h\n" | sort -u

这是路径中容易出现空格的错误。使用时:

command $(stuff)

会遇到文件名中的空格问题。研究其他方法以及如何处理 shell 中的空格。更好的是,不要手动编写此类内容,而是重新发明轮子并转向构建系统,例如 cmake

大佬总结

以上是大佬教程为你收集整理的g++ -I 包含所有带有头文件的子目录全部内容,希望文章能够帮你解决g++ -I 包含所有带有头文件的子目录所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: