В Windows я кросс-компилирую программу для ARM / Linux, используя набор кросс-компиляторов CodeSourcery. Я использую MinGW MSYS в качестве моего интерпретатора команд, и очень часто он искажает мои пути и имена путей. Например, для сборки моей программы я вызываю
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
Конечно, я хочу, чтобы /usr/lib/myrpath
дословно вставил в исполняемый файл myprogram
- цель ARM Linux, для которой я собираю компилятор, не использует MinGW или MSYS. Но вот что в итоге приводит к этому:
...
0x0000000f (RPATH) Library rpath: [C:/MinGW/msys/1.0/lib/myrpath]
...
Не совсем то, что я хотел. Если я вызываю GCC в командной строке cmd.exe напрямую, я получаю правильный rpath в исполняемом файле. Если я вызываю GCC в командной строке MSYS, я получаю искаженный rpath. Если я вызываю GCC с Makefile, который запускается с make из командной строки cmd.exe, я все равно получаю искаженный rpath (!)
Есть идеи, как мне отключить это раздражающее поведение?