Max*_*kin 68
假设GNU make:
file := whatever.txt
variable := $(shell cat ${file})
Run Code Online (Sandbox Code Playgroud)
bb-*_*ion 39
我猜你想在你的Makefile中设置一个变量到另一个文件的内容:
FILE=test.txt
VARIABLE=`cat $(FILE)`
target:
echo $(VARIABLE)
Run Code Online (Sandbox Code Playgroud)
小智 20
GNU make 4.2支持文件读取操作,因此就Maxim Egorushkin的优秀答案而言,现在有一种可选方法可以解决这个问题:
FILE := test.txt
variable :=$(file < $(FILE))
Run Code Online (Sandbox Code Playgroud)
Pav*_*l P 12
cat在Windows上不存在.适用于Linux和Windows的解决方案:
cat := $(if $(filter $(OS),Windows_NT),type,cat)
variable := $(shell $(cat) filename)
Run Code Online (Sandbox Code Playgroud)
说明:似乎在Windows上,总是将OS环境变量定义为等于'Windows_NT'.这样,对于Windows type命令,使用非Windows cat.
自$(file op filename)添加以来,简单得多:
VARIABLE = $(file < my_file.txt)
Run Code Online (Sandbox Code Playgroud)
此处的手册页:https : //www.gnu.org/software/make/manual/html_node/File-Function.html#index-file_002c-reading-from