108 votes

Comment arrêter MinGW et MSYS de malmener les noms de chemin donnés en ligne de commande

Sur Windows, je suis en train de compiler un programme pour ARM/Linux en utilisant la suite de compilateurs croisés de CodeSourcery. J'utilise MinGW MSYS comme mon interpréteur de commandes, et très souvent il va déformer mes chemins et noms de chemins. Par exemple, pour construire mon programme, j'invoque

arm-none-linux-gnueabi-gcc.exe -Wall -g \
    -Wl,--dynamic-linker=/usr/lib/myrpath/ld-linux.so.3 \
    -Wl,-rpath=/usr/lib/myrpath \
    -I../targetsysroot/usr/include \
    myprogram.c -o myprogram

Bien sûr, je veux que /usr/lib/myrpath soit inséré textuellement dans l'exécutable myprogram - la cible ARM Linux pour laquelle je compile n'utilise pas MinGW ou MSYS. Mais voici ce qui finit par y aller :

...
0x0000000f (RPATH)            Rpath de la bibliothèque: [C:/MinGW/msys/1.0/lib/myrpath]
...

Pas exactement ce que je voulais. Si j'invoque GCC sur la ligne de commande cmd.exe directement, j'obtiens le bon rpath dans l'exécutable. Si j'invoque GCC sur la ligne de commande MSYS, je reçois le rpath déformé. Si j'invoque GCC avec un Makefile qui est exécuté avec make à partir de la ligne de commande cmd.exe, je reçois toujours un rpath déformé (!)

Auriez-vous des idées sur comment je pourrais désactiver ce comportement agaçant?

3voto

Steven Points 89

Malheureusement, mettre deux barres obliques pour cet exemple ne fonctionne pas comme prévu.

rsync -rvztn --delete --exclude="/application/logs/" ...

Je veux que 'rsync' exclue uniquement les fichiers dans /application/logs qui se trouve au niveau supérieur, d'où la barre oblique initiale. Ajouter deux barres obliques ne le fera pas exclure ce répertoire. Je dois donc recourir à l'option moins précise --exclude="application/logs/".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X