<分区>
我想将 Makefile 的目录传递给一个函数。
例如:
生成文件
$(DIR) = makefile 目录
程序
int main(int argc,char argv[])
char 目录 = argv[1]
我该怎么做?
编辑 澄清。我希望我的应用程序在我编译它的目录之外工作。
<分区>
我想将 Makefile 的目录传递给一个函数。
例如:
生成文件
$(DIR) = makefile 目录
程序
int main(int argc,char argv[])
char 目录 = argv[1]
我该怎么做?
编辑 澄清。我希望我的应用程序在我编译它的目录之外工作。
最佳答案
在编译时传递符号是通过 -D 选项完成的 (示例是 C++,但您可以轻松转换为 C)。您可以只定义符号,也可以给它一个值(这是您想要的)。
DIR=$(shell pwd)
mytarget:
@echo "DIRECTORY=$(DIR)"
$(CXX) mysource.cpp -D"DIRECTORY=$(DIR)" -o mysource
然后,在您的源文件中,符号 DIRECTORY
将保存路径。要检查这一点,您需要一个额外的技巧(称为“双重扩展”):
#define STR1(x) #x
#define STR(x) STR1(x)
#include <iostream>
int main()
{
std::cout << "directory is " << STR(DIRECTORY) << "\n";
}
可以查看this similar question , 和 see here关于 D 标志。
关于c - 如何将参数从 Makefile 传递给程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48261350/