Я не уверен, возможно ли это, но я хотел бы создать общий объектный файл и хотел бы упростить его использование, имея #define
, который можно использовать для разыменования имен функций. 1002 *
В libfoo.h
#define FOO_SO_FUNCTION_A aFunction
В libfoo.so
#include "libfoo/libfoo.h"
extern "C" int FOO_SO_FUNCTION_A( void )
{
...
}
В clientfoo
#include "libfoo/libfoo.h"
...
libfoofunc = dlsym( libfoo, MAKE_STRING(FOO_SO_FUNCTION_A) );
Моя проблема в том, что
#FOO_SO_FUNCTION_A
Просто изменится на "FOO_SO_FUNCTION_A", потому что препроцессор по праву запускается только один раз. Есть ли другой способ сделать это?