大佬教程收集整理的这篇文章主要介绍了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,请注明来意。