我在不同的库中有两个名为string.h
的头文件,它们相互冲突,甚至与同名的标准C包含文件冲突。
除标准之外,不需要使用任何string.h
,但我需要在GCC搜索路径中包含库标题路径。目前我使用类似-I /usr/local/include/lib1 -I /usr/local/include/lib2
的内容,但这样我就无法使用标准C string.h
。
解决此类冲突的正确方法是什么?
答案 0 :(得分:6)
您可以使用#include <lib1/string.h>
并使用gcc -I/usr/local/include
进行编译。
答案 1 :(得分:4)
问题是通过-I添加到搜索路径的目录在gcc之前的标准列表中查找(按顺序)
/usr/local/include/
/usr/include/
/usr/local/lib/
/usr/lib/
所以你可以按照Schnouki的建议,除了不需要添加-I / usr / local / include