[gull] Makefile / cmake / interpretation de commande au link
Marc SCHAEFER
schaefer at alphanet.ch
Wed Jan 3 15:02:10 CET 2007
On Wed, Jan 03, 2007 at 10:58:59AM +0100, B. Carrupt wrote:
> J'utilise cmake pour compiler en C++ mes projets sur une Fedora core 1 et j'ai un souci avec le link lorsque j'utilise wxWindows.
Dans de tels cas, il manque en général pas mal d'informations
(background) pour éviter d'avoir des dizaines de mails fragmentaires :->
Je ne crois pas avoir utilisé cmake. Je suppose que cet outil *génère*
des fichiers Makefile, selon la plateforme (un peu comme imake,
automake, et autres?).
Ces fichiers sont ensuite lus par la commande usuelle `make'.
Si oui, il nous faudrait un extrait du Makefile concerné. Quitte à
déposer le Makefile entier sur un serveur HTTP ou FTP et donner l'URL
ici-même.
> J'ai essaye de supprimer les parametres de la commande `wx-config`, mais j'ai toujours le meme probleme, ce coup-ci avec l'accent ferme :
make ne supporte pas, à ma connaissance, l'expansion via les backticks
(`). Du moins pas GNU make.
Si je lis le manuel (info make), je trouve (section 8.11):
The `shell' function performs the same function that backquotes
(``') perform in most shells: it does "command expansion". This means
that it takes as an argument a shell command and evaluates to the
output of the command. The only processing `make' does on the result
is to convert each newline (or carriage-return / newline pair) to a
single space. If there is a trailing (carriage-return and) newline it
will simply be removed.
Donc, si dans le fichier Makefile généré par cmake il y a une ligne du
genre:
WXCONFIG=`wx-config`
elle devrait être changée en:
WXCONFIG=$(shell wx-config)
Une alternative serait d'utiliser une autre version de make, qui
supporterait peut-être cette syntaxe.
En général, ce genre de programme retourne un chemin (p.ex. le chemin
aux bibliothèques, etc).
> J'ai ensuite supprime tout ce qui touche `wx-config` dans le link et ca ne me donne plus d'erreur. Mais evidemment cmake me regenere les fichiers avec `wx-config`. Et j'en aurai surement besoin plus loin.
>
> Une suggestion ?
Il n'est jamais interdit de lancer ses outils dans un Makefile de plus
haut niveau, comme p.ex.:
all: application
application: Makefile
Makefile:
cmake
patch < $(PATCHES)/fix-incorrect-wx-config-call
clean:
make clean
rm -f Makefile
Mais bien sûr, peut-être que le problème est dû à un bug dans la
distribution; consulter le système de bug-reporting pour p.ex. le
package cmake; chercher sur Google, etc; pour éviter d'appliquer
un work-around à un problème connu, voire déjà résolu.
More information about the gull
mailing list