Unter Windows kompiliere ich ein Programm für ARM / Linux mithilfe der Cross-Compiler-Suite von CodeSourcery. Ich verwende MinGW MSYS als Befehlsinterpreter, und sehr oft werden meine Pfade und Pfadnamen beschädigt. Um beispielsweise mein Programm zu erstellen, rufe ich auf
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
Natürlich möchte ich /usr/lib/myrpath
wörtlich in die myprogram
ausführbare Datei einfügen - das ARM Linux-Ziel, für das ich kompiliere, verwendet weder MinGW noch MSYS. Aber hier ist, worauf es ankommt:
...
0x0000000f (RPATH) Library rpath: [C:/MinGW/msys/1.0/lib/myrpath]
...
Nicht genau das, was ich wollte. Wenn ich GCC direkt über die Befehlszeile cmd.exe aufrufe, erhalte ich den richtigen Pfad in der ausführbaren Datei. Wenn ich GCC über die MSYS-Befehlszeile aufrufe, erhalte ich den verstümmelten Pfad. Wenn ich GCC mit einem Makefile aufrufe, das mit make über die Befehlszeile cmd.exe ausgeführt wird, erhalte ich immer noch einen verstümmelten Pfad (!)
Irgendwelche Ideen, wie ich dieses nervige Verhalten ausschalten könnte?