2017-04-06 2 views
1


Ich möchte eine make-Datei zu kompilieren und auf Windows (in mylib.dll) und mindestens zwei Linux-Architekturen, i686 und armv61 (in mylib.so) zu verknüpfen.Makefile Einstellung verschiedener Linker-Flags für verschiedene Architekturen

Wenn ich linker Flags manuell 'setze', kompiliert mein Code/Links ok.

Aber ich möchte Linker Flags basierend auf bestimmte ARC-Werte, siehe Snippet.

<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> 

Auf meinem i686 erhalte ich:

<code> 
ARCH is [i686] 
LD_FLAGS is [-shared -lSDL] 
make: Nothing to be done for 'all'. 
</code> 

Auf meinem armv61 erhalte ich:

<code> 
ARCH is [armv6l] 
LD_FLAGS is ["?"] 
... (error stuff!) 
</code> 

So ist ARCH gesetzt ok aber LD_FLAGS nicht der Fall, ich tue etwas Dummes mit das ifeq usw.

Irgendeine Idee, was der Fehler ist, wie man die Make-Datei repariert?

Danke.

Antwort

0

Sie schrieb einen 1 statt l (armv6l vs armv61)

+0

Oops .... verdammt mein alter Hund Augen, rechts Ich habe gerade überprüft, wie grün schaut auf schwarz ein Upgrade benötigt ... Dank – reddog0000

Verwandte Themen