これを機能させるにはどうすればよいですか? 「make:somevariable:Command not found」というエラーメッセージが表示される
sometarget:
somevariable = somevalue
完全な例:
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
the eval
function を使用して解決策を見つけました:
$(eval variablename=whatever)
これは動作します:)
(私は今、より簡単なビルドシステムを見つけようとするかもしれませんが;))
読んでくれてありがとう、そしてもちろん@eriktousも書いてくれてありがとう!
あなたがしたようにそれを書く場合、割り当てはあなたが得たエラーを与えるシェルコマンドとして実行されます。
私はそれを次のように整理してみます:
CXXFLAGS = -I/usr/include/test ifneq($(argsexec)、true) CXXFLAGS + = -shared -fPIC DESTDIR =/home /pc endif OBJ = main.o Server.o blabla:$(OBJ) $(CXX )-o blabla $(OBJ)$(CXXFLAGS) ifneq($(argsexec)、true) ./bn.sh endif
ifneq
構文を2回使用することに私はあまり満足していませんが、これはあなたが望むことをするはずです。それを回避する何かを思いつくのはもっと難しいことだと思います。