Как разрешить конфликты имен файлов в GCC? - PullRequest
3 голосов
/ 19 апреля 2010

У меня есть два заголовочных файла с именем string.h в разных библиотеках, они конфликтуют друг с другом и даже конфликтуют со стандартным C-файлом с тем же именем.

Нет необходимости использовать string.h, кроме стандартного, но мне нужно включить пути к заголовкам библиотек в пути поиска GCC. В настоящее время я использую что-то вроде -I /usr/local/include/lib1 -I /usr/local/include/lib2, но таким образом я не могу включить стандартный C string.h.

Как правильно разрешать такие конфликты?

Ответы [ 2 ]

6 голосов
/ 19 апреля 2010

Вы, вероятно, можете использовать #include <lib1/string.h> и скомпилировать с gcc -I/usr/local/include.

4 голосов
/ 19 апреля 2010

Проблема в том, что каталоги, добавленные в путь поиска через -I, проверяются раньше, чем стандартные, для gcc (по порядку)

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

Так что вы можете следовать совету Шнуки, за исключением того, что нет необходимости добавлять -I / usr / local / include

...