如何在GCC中解决包含文件名冲突的问题?

我在不同的库中有两个名为string.h头文件,它们相互冲突,甚至与同名的标准C包含文件冲突。

除标准之外,不需要使用任何string.h ,但我需要在GCC搜索路径中包含库头文件路径。 目前我使用类似-I /usr/local/include/lib1 -I /usr/local/include/lib2 ,但这样我就不能包含标准的C string.h

解决此类冲突的正确方法是什么?

您可以使用#include 并使用gcc -I/usr/local/include编译。

问题是通过-I添加到搜索路径的目录在gcc之前的标准库中被查找(按顺序)

 /usr/local/include/ /usr/include/ /usr/local/lib/ /usr/lib/ 

所以你可以按照Schnouki的建议,除了不需要添加-I / usr / local / include