无法在配方内分配变量

Blu*_*lub 33 makefile gnu-make

我该如何工作?它出错"make:somevariable:command not found"

sometarget:
    somevariable = somevalue
Run Code Online (Sandbox Code Playgroud)

完整示例:

CXXFLAGS = -I/usr/include/test -shared -fPIC

OBJ = main.o Server.o

blabla : $(OBJ) 
ifeq ($(argsexec),true) 
    # Creates an executable
    CXXFLAGS = -I/usr/include/test
    $(CXX) -o blabla $(OBJ) $(CXXFLAGS) 
else 
    # Creates a library
    DESTDIR = /home/pc
    $(CXX) -o blabla $(OBJ) $(CXXFLAGS) 
    ./bn.sh
endif
Run Code Online (Sandbox Code Playgroud)

Blu*_*lub 64

我找到了使用eval功能的解决方案:

$(eval variablename=whatever)
Run Code Online (Sandbox Code Playgroud)

这工作:)

(虽然我现在可能会尝试找到一个更简单的构建系统;))

感谢大家的阅读,当然还有@eriktous的写作!