【问题标题】:makefile setting different linker flags for different archtecturesmakefile 为不同的体系结构设置不同的链接器标志
【发布时间】:2017-04-06 15:18:26
【问题描述】:


我想要一个 make 文件在 windows 上编译和链接(到 mylib.dll)和至少两个 Linux 架构,i686 和 armv61(到 mylib.so)。

如果我手动“设置”链接器标志,我的代码编译/链接正常。

但我想根据某些 ARC 值设置链接器标志,请参阅 sn-p。

<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文件?

谢谢。

【问题讨论】:

    标签: c++ gcc makefile linker


    【解决方案1】:

    你写的是1而不是larmv6l vs armv61

    【讨论】:

    • 哎呀....该死的我的老狗眼睛,你的权利我刚刚检查过,看起来像黑底绿需要升级...谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多