2015-01-19 1 views
1

Я работаю над проектом обработки изображений и создал множество библиотек для различных методов извлечения объектов. У меня есть еще одна библиотека, которая использует одну из этих библиотек.Включение заголовка с параметрами C++

Я не хочу включать их все, поэтому я хотел бы выборочно включать библиотеки на основе параметров, определенных конфигурационным файлом. Файл конфигурации хранит параметр и его значение, как показано ниже:

LIB: «а»

Можно ли выборочно включать «библиотека а» путем считывания параметров в из этого конфигурационного файла?

+0

Да, но это зависит от системы, и, как правило, работает только для разделяемых библиотек. Для Windows читайте о ['LoadLibrary'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx) и связанных с ним функциях в системах POSIX (как Linux и OSX) читал о ['dlopen (3)'] (http://man7.org/linux/man-pages/man3/dlopen.3.html). –

+1

Под «включением библиотек», вы имеете в виду (A), при необходимости, ссылку на 'something.lib' при компиляции, или (B), необязательно, что-то где-то в исходном коде? Или, возможно, оба? Это возможно *, но я думаю, что нам нужно некоторое разъяснение о том, почему вы хотите сделать это (то есть, чего вы пытаетесь достичь?), Прежде чем мы сможем дать ответ, потому что у меня есть подозрение, что это может быть примером проблемы [XY] (http://mywiki.wooledge.org/XyProblem). – GoBusto

+0

Я работаю над проектом обработки изображений, и я создал много библиотек для различных методов извлечения объектов. У меня есть еще одна библиотека, которая использует одну из этих библиотек. Я не хочу включать их всех. – ekarem

ответ

1

Вы можете включить в условное время компиляции с #ifdef #ifndef #endif директивы

#define TypeA 
#define TypeB 


#ifdef TypeA 
#include <lib.h> 
#endif 

#ifdef TypeB 
#include <stdio.h> 
#endif