включая различные версии заголовков glib - PullRequest
2 голосов
/ 02 июля 2010

Если есть два исходных файла a.c и b.c: a.c включает в себя glib.h из glib-2.6.6 а также b.c включает glib.h из glib-2.12

Затем я собираю их, связываю их вместе и создаю целевую программу. Предположим, что a.c не использует никаких новых функций, появившихся после v2.6, не вызовет ли проблема включение разных версий заголовков? Если да, то когда такая проблема случится?

Ответы [ 2 ]

0 голосов
/ 31 августа 2011

См. Эту таблицу сравнения для версий Glib. В версии 2.6.6 и 2.12.0 были внесены некоторые изменения API / ABI низкой серьезности.

enter image description here

...

enter image description here

0 голосов
/ 08 июля 2010

Это не должно вызывать проблем.Это связано с тем, что GLib поддерживает API-совместимость для всех версий серии 2.x.Какую бы версию заголовков вы не использовали для компиляции своей программы, вы можете ссылаться на любую версию библиотеки, если вы не используете никаких функций, отсутствующих в этой версии библиотеки.

Однако выкажется, делает вашу жизнь излишне сложной:

Я использую Makefile, который может указать корневой каталог GLiB, и использую #include "glib.h" в коде.У меня установлено несколько версий glib-заголовков.

С какой стати вы хотите это сделать ??

...