我需要对现有的长C源代码进行一些更改。有一个顶级Makefile,它定义了各种编译器选项,例如链接器使用的库的目录位置。从Makefile导入变量到C程序中
喜欢的东西:
LD_OPTIONS = $(PATH_TO_MYLIB1) $(PATH_TO_MYLIB2)
现在,我想用dlsym()
和dlopen()
使用这些库,而不是明确地联系起来的。为此,我需要库路径。
dlopen(path_to_lib , RTLD_NOW) ;
如何从Makefile中使用PATH_TO_LIB
变量并在我的程序中使用它?我想过使用诸如“echo
和system()
”之类的东西。但是,我的期望是有更好的解决方案。 :-)
如果你打算做这样的事情,它可能会更好做#warning后或在#ifndef块内部#error,而不是仅仅把它赋值给一些在运行时会中断的任意值(可能会晚得多,因为我们永远不知道这个dlopen()什么时候会被调用) – 2009-06-22 08:26:33