[devel] Re: middleman vs pcre
Andrey Rahmatullin
=?iso-8859-1?q?wrar_=CE=C1_altlinux=2Eru?=
Ср Ноя 12 17:22:18 MSK 2003
В сообщении от 12 Ноябрь 2003 14:24 Sergey Vlasov написал(a):
[...]
> Ну здесь-то явно используется regcomp из glibc. Т.е. где-то
> перепутались заголовки и библиотеки.
Удалось выяснить, что всё именно так. Но я ничего не понимаю.
wrar на wrars-comp RPM/BUILD/middleman $ grep PCRE config.h
#define HAVE_PCRE 1
Здесь правильно. Далее:
wrar на wrars-comp RPM/BUILD/middleman $ head -n13 include/proto.h | tail -n9
#include "../config.h"
#ifdef HAVE_PCRE
#include <pcre/pcre.h>
#include <pcre/pcreposix.h>
#else
#include "../pcre/pcre.h"
#include "../pcre/pcreposix.h"
#endif /* HAVE_PCRE */
Получается, препроцессор должен развернуть это в
#include <pcre/pcre.h>
#include <pcre/pcreposix.h>
Так?
А вот нифига. Всё чуть посложнее ;-) Дело в том, что config.h инклюдится еще и
через -I. в Makefile. И получается вот что:
$ cpp -Iinclude -I. src/regexp.c > regexp_with_config_h.i
- так при компиляции
$ cpp -Iinclude src/regexp.c > regexp_without_config_h.i
- так хотелось бы
$ diff regexp_with_config_h.i regexp_without_config_h.i | head -n6
180,181c180,181
< # 1 "pcre/pcre.h" 1
< # 32 "pcre/pcre.h"
---
> # 1 "/usr/include/pcre/pcre.h" 1 3
> # 37 "/usr/include/pcre/pcre.h" 3
Я, конечно, С знаю совсем недостаточно, но... Если одна и та же #define
встречается 2 раза, она #undef-ается?
Т.о., убивать одно из упоминаний config.h и всё будет ОК?
[...]
--
Не надо советовать создавать в / что-либо.
-- ldv in sisyphus@
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: signature
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20031112/118b825a/attachment-0001.bin>
Подробная информация о списке рассылки Devel