我想要一个make文件在windows上编译和链接(进入mylib.dll)和至少两个Linux体系结构,i686和armv61(进入mylib.so)。
如果我手动设置'链接器标志,我的代码编译/链接确定。
但我想根据某些ARC值设置链接器标志,请参阅片段。
<code>
ARCH = "?"
ARCH = $(shell arch)
$(info ARCH is [$(ARCH)])
LD_FLAGS = "?"
ifeq "$(ARCH)" "i686"
LD_FLAGS = -shared -lSDL
endif
ifeq "$(ARCH)" "armv61"
LD_FLAGS = -shared -lSDL -L/usr/lib/arm-linux-gnueabihf
endif
$(info LD_FLAGS is [$(LD_FLAGS)])
</code>
在我的i686上,我得到:
<code>
ARCH is [i686]
LD_FLAGS is [-shared -lSDL]
make: Nothing to be done for 'all'.
</code>
在我的armv61上,我得到了:
<code>
ARCH is [armv6l]
LD_FLAGS is ["?"]
... (error stuff!)
</code>
所以ARCH设置正常但是LD_FLAGS没有,我正在做一些愚蠢的ifeq等。
知道错误是什么,如何修复make文件?
感谢。
答案 0 :(得分:0)
你写了一个1
而不是l
(armv6l
vs armv61
)