我需要对现有的长 C 源代码进行一些更改。有一个顶级 Makefile,它定义了各种编译器选项,例如链接器使用的库的目录位置。
类似的东西:
LD_OPTIONS = $(PATH_TO_MYLIB1) $(PATH_TO_MYLIB2)
现在,我正在考虑使用 dlsym()
和 dlopen()
来使用这些库,而不是显式链接它们。为此,我需要库路径。
dlopen( path_to_lib , RTLD_NOW) ;
如何使用 Makefile 中的 PATH_TO_LIB
变量并在我的程序中使用它?我想到了使用诸如“echo
with system()
”之类的东西。但是,我希望有更好的解决方案。 :-)
最佳答案
在你的makefile中你可以写
CFLAGS += -DPATH_TO_LIB="somepath/somelib"
因此 PATH_TO_LIB
成为您可以在源代码中使用的预处理器宏
dlopen(PATH_TO_LIB, RTLD_NOW);
关于c - 从 Makefile 将变量导入 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025964/