2010-12-07 64 views
0

Disons que j'ai une cible principale, exe qui dépend de trois libs:Comment puis-je contrôler l'ordre dans lequel les cibles sont exécutées?

exe: LIB1.lib LIB2.lib LIB3.lib 

et les cibles lib ont quelque chose comme ceci:

LIB1: $(LIB1OBJECTS) 
LIB2: $(LIB2OBJECTS) 
LIB3: $(LIB3OBJECTS) 

Giving que la plupart du temps, faire sera courir avec un drapeau -j, et je voudrais que LIB1 et LIB2 soient construits en parallèle, comment puis-je m'assurer que LIB3 est toujours construit après LIB2?

+0

Je m'attendais à ce que les règles ressemblent à 'LIB1.lib: $ (LIB1OBJECTS)', plutôt qu'à 'LIB1: $ (LIB1OBJECTS)'. Peut-être que ce mélange de noms est la raison pour laquelle la suggestion d'Ignacio Vazquez-Abrams ne fonctionne pas pour vous? – slowdog

Répondre

2

Rendre LIB3 dépendant de LIB2.

+0

Puis-je le faire dépendre de LIB2 et des objets aussi? J'ai essayé de mettre quelque chose comme 'LIB3: $ (LIB3OBJECTS) LIB2', mais quelque chose doit être faux, car parfois il commence à construire LIB3 sans attendre que LIB2 soit fini. – Geo

+0

Vous devriez être capable de. Certains d'entre eux sont-ils utilisés dans d'autres cibles? –

+0

@Geo: C'est bien - avec cette règle, il construira d'abord '$ (LIB3OBJECTS)', puis 'LIB2'. – reinierpost