c - 从 Makefile 将变量导入 C 程序

标签 c makefile

我需要对现有的长 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/

相关文章:

使用先前传递的参数在地址处调用函数

c - 如何存储联系信息

c++ - 为 while 循环创建超时的最简洁方法是什么?

c - 如果未完成,则丢弃最后一行

c - Makefile -std=c99 错误

c - 在使用 clean 语句后尝试运行程序时出现错误

makefile - Makefile 中 sed 的单引号字符串

c++ - LLVM-5.0 Makefile undefined reference 失败

c - 如何检查 256i(16 位) vector 以了解它是否包含大于零的元素?

c++ - Libquantum 代码理解 Makefile